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
文件里添加以下代码
- android {
- ...
- defaultConfig {
- ...
- ndk {
- abiFilters "armeabi-v7a", "x86"
- }
-
- packagingOptions {
- exclude "lib/arm64-v8a/librealm-jni.so"
- }
- }
- }
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,检索不到就会报错