(AIDE)Android Eclipse JNI 调用 .so文件加载问题
生活随笔
收集整理的這篇文章主要介紹了
(AIDE)Android Eclipse JNI 调用 .so文件加载问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
背景:對于Android工程 Eclipse里編譯好的.so文件放到 libs\armeabi下以后, 這樣.so文件就可以打包到apk文件里,在apk裝到手機上以后 在libs\armeabi下的.so文件應該就會解壓到/data/data/這里是你project的包名(比如com.first.second)/lib下。 問題:寫了個測試的android JNI app,.so已經(jīng)放到了libs\armeabi下 而且從編譯的apk里也能看到.so已經(jīng)打包進去(解壓apk文件,里邊應該有l(wèi)ib文件夾) 但是在/data/data/com.test.test/lib下就是沒有相應的.so文件 解決方法:原來是因為我的.so沒有按照android標準命名,.so的名字必須有'lib'前綴 否則apk解壓/安裝到手機的時候不會把libs\armeabi下的.so拷貝到/data/data/com.test.test/lib下。原來我用的so名字是JNITest.so, 改為libJNITest.so后一切正常。 補充: a) 用loadLibrary調用的時候需要去掉lib前綴 System.loadLibrary("JNITest"); b) 用load調用的時候需要寫全路徑名 且不能去掉lib前綴 因為這里是當成一個普通文件讀取的 System.load("/data/data/com.test.test/libJNITest.so"); 我在調用CTP庫的時候沒有加上那個loadLibrary("thostmduserapi")和loadLibrary("thostmduserapi_wrap")語句,導致程序執(zhí)行出錯。
轉載于:https://www.cnblogs.com/bjguanmu/p/5342357.html
總結
以上是生活随笔為你收集整理的(AIDE)Android Eclipse JNI 调用 .so文件加载问题的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: 【转】CSS3 Box-sizing
- 下一篇: 数据挖掘(10):卷积神经网络算法的一个