号外!号外!百度语音开源库更新了

简介: 号外!号外!百度语音开源库更新了

开源:ReactNative集成百度语音开源库,在这篇文章中作者开源了一个ReactNative集成百度语音合成的组件库,今天通过查看Github上的关于开源react-native-baidu-vtts 的issues,有朋友提到了一个bug,并给出了具体报错

请问「java.lang.String com.wayne.baiduvoice.util.OfflineResource.getTextFilename()」为 null 是什么原因?
12-26 16:37:12.311 14862-14885/com.anlint.weightapp E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
    Process: com.anlint.weightapp, PID: 14862
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.wayne.baiduvoice.util.OfflineResource.getTextFilename()' on a null object reference
        at com.wayne.baiduvoice.VoiceUtils.getParams(VoiceUtils.java:175)
        at com.wayne.baiduvoice.VoiceUtils.initialTts(VoiceUtils.java:83)
        at com.wayne.baiduvoice.VoiceUtils.init(VoiceUtils.java:65)
        at com.wayne.baiduvoice.RNBaiduvoiceModule.initBaiduTTS(RNBaiduvoiceModule.java:32)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:371)
        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:150)
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26)
        at android.os.Looper.loop(Looper.java:148)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225)
        at java.lang.Thread.run(Thread.java:818)


仔细检查了一下自己开源库的代码,发现是Android10系统对于应用访问外部存储权限的问题,google在开发文档中也提到了这个问题,如下所述。

为了让用户更好地管理自己的文件并减少混乱,以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储)。此类应用只能看到本应用专有的目录(通过 Context.getExternalFilesDir() 访问)以及特定类型的媒体。除非您的应用需要访问存放在应用的专有目录以及 MediaStore 之外的文件,否则最好使用分区存储。

目前已经修复此问题,并发布到了npm仓库,可通过如下命令行更新ReactNative项目依赖,解决这个bug.

yarn add react-native-baidu-vtts

感谢各位老铁们支持,我在以后得开源过程中,会多加努力,为开源社区贡献更多内容。

目录
相关文章
|
存储 网络安全 Windows
接口测试|Charles证书的设置(抓HTTPS数据包)&SSL证书过期解决办法
接口测试|Charles证书的设置(抓HTTPS数据包)&SSL证书过期解决办法
接口测试|Charles证书的设置(抓HTTPS数据包)&SSL证书过期解决办法
|
10月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
561 5
Vue2滑动输入条(Slider)
这是一个基于 Vue3 的滑动输入条(Slider)组件,提供了丰富的自定义选项,如最小值、最大值、初始值、宽度、禁用状态及双滑块模式等。用户可通过拖动滑块或点击输入条调整数值。代码示例展示了如何创建组件及在页面中引入使用。包含单滑块与双滑块模式的效果图。
450 2
Vue2滑动输入条(Slider)
|
机器学习/深度学习 自然语言处理 算法
深度学习算法简介(一)
深度学习算法简介(一)
702 0
|
编解码 算法 Unix
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
【Qt 应用开发 】QT 三种定时器的介绍 以及 QTimer startTimer/Timerevent QBasicTimer 之间的区别
2867 0
搜索与图论-有向图的拓扑序列
搜索与图论-有向图的拓扑序列
|
程序员 Android开发
手把手Android Studio全套安装+配置+真机部署教程【多图超详细】
手把手Android Studio全套安装+配置+真机部署教程【多图超详细】
849 0
手把手Android Studio全套安装+配置+真机部署教程【多图超详细】
久等~你们要的电子手签功能来啦!
宜搭对于流程审批的审批人节点支持手写签名的功能,用户通过在移动端设置自己的签名用于在审批时进行展示。
久等~你们要的电子手签功能来啦!
|
Java 测试技术 应用服务中间件
如何让测试少加班?阿里Mock平台使用方法揭秘!
作为一名测试,我们知道不是任何情况都可以用真实对象来测,比如我们要测一个地方PM2.5超过900的情况,我们不能每天等着PM2.5的指数超过900再测试,这个时候可以用一个虚拟对象来创建测试,做一个Mock。
14546 0