百度語音應用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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,819評論 25 708
  • 生活很仁厚,生活也很嚴酷。 “啊牛,我現在的日子真他媽的苦逼啊?!蓖瑢W小婷在微信上跟我訴苦,我也只能是呵呵,因為我...
    我不是蝸牛閱讀 410評論 2 7
  • 為家人煲一鍋湯水,是到廣州后養得的習慣,不出差的周末,我喜歡上了煲湯這活兒。 廣州人對一碗湯的堅持與執著,由來...
    筱筱凡閱讀 913評論 0 0
  • 2017年8月4日 星期五 今天跟媽媽買菜的時候,有一個小女孩兒,大概四歲,在玩手機游戲,又看到一個男孩兒,大...
    鑫隆媽媽閱讀 258評論 0 0
  • 大學伴隨著我們成長、改變 從一個懵懂無知的少年 變成了一個黃段子滿天飛的巫妖王 “羞澀”早跟不上你的腳步 你漸行漸...
    675a25d53828閱讀 577評論 2 8