美文网首页
百度语音应用push 到 system/app无法加载动态库解决

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

作者: 罗叶绕梁 | 来源:发表于2018-02-06 16:57 被阅读0次

    错误描述: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

    相关文章

      网友评论

          本文标题:百度语音应用push 到 system/app无法加载动态库解决

          本文链接:https://www.haomeiwen.com/subject/sgggzxtx.html