之前,都是在32位Android手機上,做測試。然后搞了一個64位手機,就不行了。
分析后,先是報:is 32-bit instead of 64-bit
然后,再自己的CPP的庫中,修改Application.mk,將APP_ABI :=armeabi改為APP_ABI :=armeabi arm64-v8a
這樣生成的時候,就會得到兩個版本的so
第一種情況解決后,第二種情況又來了,就是找不到lib
原來,我是通過/data/data/com.xxx.xxx/lib訪問so的,結果在64位安裝后,lib這個是無效的,然后就加載失敗。
最后通過ApplicationInfo取到。
- public static String GetNativePath() {
- String ss = m_Context.getApplicationInfo().nativeLibraryDir;
- if(ss == null) ss = "/data/data/com.hxxx.yyy/lib";
- return ss;
- }
然后問題解決。