百度语音应用push 到 system/app无法加载动态库解决办法

错误描述:1,集成了百度语音SDK的应用通过 install 命令安装不报so动态库错误;

2,通过 adb push apk路径 system/app 安装,报无法加载so动态库的错误。

百度语音识别错误:RecogEventAdapter: name:asr.finish; params:{"origin_result":{"sn":"","error":3,"desc":"VAD is not available","sub_error":3100},"error":3,"desc":"VAD is not available","sub_error":3100}

原因:方式1,应用会从apk安装包中读取so动态库,拷贝到 data/app/packagename-1/lib/arm 目录中,应用也会从这个路径下读取so动态库。

方式2,百度语音SDK应用 同样会从apk安装包中读取so动态库,拷贝到 system/lib/apkName/目录下,并读取。但是 system 目录是只读的,因此不存在system/lib/apkName/的路径,自然也不会有so动态库,应用是读取不到so动态库的。

解决问题的关键:获取动态库加载路径:String getApplicationInfo().nativeLibraryDir

解决办法:使用将必须动态库手动拷贝到相应目录。下面以intelligencerobot-release.apk为例:

adb root

adb remount

adb push E:\AndroidStudioProjects\RobotGene\intelligencerobot\libs\armeabi\libBaiduSpeechSDK.so system/lib/intelligencerobot-release/

.....(拷贝必须动态库)

adb push E:\AndroidStudioProjects\RobotGene\apk\release\intelligencerobot-release.apk system/app/

adb reboot

另外附上其他相类似的问题解决方法,以供参考:

1,Android应用push到/system/app/后so库不能加载:http://blog.csdn.net/feiniao8651/article/details/73387152

2,将第三方apk变成系统apk:http://blog.51cto.com/670176656/1608687

3,Android模拟器, push文件到system下文件夹权限,空间,SO文件没有自动安装的问题:https://www.mobibrw.com/2015/2370

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,370评论 25 709
  • 生活很仁厚,生活也很严酷。 “啊牛,我现在的日子真他妈的苦逼啊。”同学小婷在微信上跟我诉苦,我也只能是呵呵,因为我...
    我不是蜗牛阅读 3,138评论 2 7
  • 为家人煲一锅汤水,是到广州后养得的习惯,不出差的周末,我喜欢上了煲汤这活儿。 广州人对一碗汤的坚持与执着,由来...
    筱筱凡阅读 4,388评论 0 0
  • 2017年8月4日 星期五 今天跟妈妈买菜的时候,有一个小女孩儿,大概四岁,在玩手机游戏,又看到一个男孩儿,大...
    鑫隆妈妈阅读 1,801评论 0 0
  • 大学伴随着我们成长、改变 从一个懵懂无知的少年 变成了一个黄段子满天飞的巫妖王 “羞涩”早跟不上你的脚步 你渐行渐...
    675a25d53828阅读 3,800评论 2 8

友情链接更多精彩内容