之前,都是在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;
- }
然后问题解决。