我试图为每个cpu架构生成单独的apk,同时也为通用apk生成一个。我设置了enableSeparateBuildPerCPUArchitecture = true
和universalApk true
。我遇到错误,因此还必须删除这些行:
ndk {
abiFilters "armeabi-v7a", "x86"
}
生成的app-armeabi-v7a-release
工作正常。但是通用apk立即崩溃。
这是显示的错误。
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
at com.facebook.soloader.SoLoader.b(Unknown Source)
at com.facebook.soloader.SoLoader.a(Unknown Source)
at com.facebook.soloader.SoLoader.a(Unknown Source)
at com.facebook.soloader.SoLoader.a(Unknown Source)
at com.facebook.react.bridge.ReactBridge.staticInit(Unknown Source)
at com.facebook.react.bridge.NativeMap.<clinit>(Unknown Source)
at com.facebook.react.bridge.JSCJavaScriptExecutorFactory.create(Unknown Source)
at com.facebook.react.k$5.run(Unknown Source)
at java.lang.Thread.run(Thread.java:760)
该如何解决?听起来好像某些本地模块未包含在通用apk中。是因为删除了abiFilters
吗?
答案 0 :(得分:1)
就我而言,已通过使用gradle
文档中指定的react-native
版本来解决。
在/android/app/build.gradle
中,它应该是:
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
,当我更新到com.android.tools.build:gradle:3.3.1
时,它开始因您的错误而失败。