zdhsoft 阅读(92) 评论(0)

之前,都是在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取到。

  1. public static String GetNativePath() {  
  2.     String ss = m_Context.getApplicationInfo().nativeLibraryDir;  
  3.     if(ss == null) ss = "/data/data/com.hxxx.yyy/lib";  
  4.     return ss;  
  5. }  

然后问题解决。