android加载so文件失败,Android无法加载'.so.1'文件
我想你還沒有通過JNI加載原生庫到Java的概念。
首先在java中定義本地方法并在本機中執行相應的實現并編譯它(您必須按照命名約定注冊本地方法1)2)在jni_onload中注冊本地方法...我認為你一定已經這樣做了,如果沒有檢查http://www.ntu.edu.sg/home/ehchua/programming/android/android_ndk.html)
接下來,你必須在任何調用之前加載本地庫。這必須做一次。您可以通過定義做一個活動:
靜態{
的System.loadLibrary( “mylib.so”);
}
注意在編譯庫,你會已經得到了庫名libXYZ.so,但加載在Java庫時的“LIB”應該被忽略,僅僅的System.loadLibrary(XYZ.so) 如果您使用的是NDK,則該庫已經被復制到Java項目> libs> armeabi文件夾中,如果沒有,則必須將您的lib.so復制到那里
現在,如果您有多個共享庫,依賴于lib.so,然后是第二等,即
靜態{
System.loadLibrary(independent_lib.so); //應該僅依賴于android庫文件 System.loadLibrary(next_dependent_lib1.so); //可以依靠android庫和independent_lib.so System.loadLibrary(next_dependent_lib2.so); //可以依靠的Android庫,independent_lib.so,next_dependent_lib1.so ..... .... ..
}
如果混雜起來,VM將不能夠鏈接庫并拋出一個不滿意的鏈接錯誤。
最后,所有這些.so都將成為你的apk文件的一部分,并且它只會被運行到系統庫。除非它的電話根本不能提取.so。如果您按照上述方法,則不需要將任何.so添加到系統中。只有建立在日食/ Cygwin和運行
希望這有助于
問候, Shrish
總結
以上是生活随笔為你收集整理的android加载so文件失败,Android无法加载'.so.1'文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界8.2机械猫外观涂色怎么得到?机
- 下一篇: xamarin android 通知,在