android 项目中so 文件的问题

1.指定加载指令集包下的so文件

引用:http://blog.csdn.net/chichengjunma/article/details/53815299

React Native项目在64位Android手机上运行,会提示

"/data/data/com.xxx.xxx/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit  这个错误。

解决方法就是取消掉所有的64位的.so文件,全部加载32位的就可以了,下面是步骤

1.在项目的根目录的 gradle.properties 里面添加一行代码  Android.useDeprecatedNdk=true.

2. build.gradle 文件里添加以下代码

[javascript]  view plain  copy
  1. android {  
  2.     ...  
  3.     defaultConfig {  
  4.         ...  
  5.         ndk {  
  6.             abiFilters "armeabi-v7a""x86"  
  7.         }  
  8.   
  9.         packagingOptions {  
  10.             exclude "lib/arm64-v8a/librealm-jni.so"  
  11.         }  
  12.     }  
  13. }  

2.指令集问题

29466/com.apps.apps E/AndroidRuntime: FATAL EXCEPTION: main
                                                                    Process: com.apps.apps, PID: 2946
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.apps.apps-1/base.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.apps.apps-1/split_lib_slice_0_apk.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.apps.apps-1/split_lib_slice_2_apk.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.apps.apps-1/split_lib_slice_4_apk.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.apps.apps-1/split_lib_slice_6_apk.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.apps.apps-1/split_lib_slice_8_apk.apk", 
zip file "/data/app/com.apps.apps-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.apps.apps-1/lib/arm64, 
/data/app/com.apps.apps-1/base.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a, 
/data/app/com.apps.apps-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_slice_1_apk.apk!/lib/arm64-v8a,
 /data/app/com.apps.apps-1/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_slice_3_apk.apk!/lib/arm64-v8a, 
 /data/app/com.apps.apps-1/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a, 
 /data/app/com.apps.apps-1/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_slice_7_apk.apk!/lib/arm64-v8a, 
 /data/app/com.apps.apps-1/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.apps.apps-1/split_lib_slice_9_apk.apk!/lib/arm64-v8a, 
 /vendor/lib64, /system/lib64]]] couldn't find "libhyphenate_av.so"

需要导入arm64-v8a这个指令集的包,具体的so文件向第三方要。

Android 4.0以下默认加载armeabi这个指令集包下的so文件,5.0及以后版本为了速度的提高将加载指定指令集下的文件,如果不像1在build.grade下配置指定加载指令集下
的文件,Android将会检索手机指令集下的so,检索不到就会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值