我目前在Play商店中分发应用。我使用Android App Bundles获得更好的下载体验。除了其他库,我使用react-native
。现在,我收到了来自不同用户的多个报告,该应用程序无法启动。查看我收到的错误消息的错误日志如下:
Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName + 738(SoLoader.java:738)
at com.facebook.soloader.SoLoader.loadLibraryBySoName + 591(SoLoader.java:591)
at com.facebook.soloader.SoLoader.loadLibrary + 529(SoLoader.java:529)
at com.facebook.soloader.SoLoader.loadLibrary + 484(SoLoader.java:484)
at com.facebook.react.bridge.ReactBridge.staticInit + 31(ReactBridge.java:31)
at com.facebook.react.bridge.NativeMap.<clinit> + 19(NativeMap.java:19)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create + 25(JSCExecutorFactory.java:25)
at com.facebook.react.ReactInstanceManager$5.run + 944(ReactInstanceManager.java:944)
at java.lang.Thread.run + 776(Thread.java:776)
我的build.gradle
中的配置如下:
ndk.abiFilters 'armeabi-v7a','arm64-v8a'
,如果我打开应用程序包的包装,则会有一个lib文件夹,其中包含一个armeabi-v7a
文件夹以及一个arm64-v8a
文件夹。在这些文件夹中,所有必需的库文件都存在,包括libreactnativejni.so
,但是所有错误报告中只有一个细节。我的应用程序使用ArCore,因此仅与特定设备兼容。我收到的所有崩溃消息都是来自设备的,这些设备自然不支持ArCore,这意味着这些设备已扎根,但仍从Play商店下载了该应用程序。 Android App Bundles是否不能在有根设备上使用,还是我在犯其他错误?
答案 0 :(得分:1)
如果您使用的是App捆绑包,则无需指定ndk.abiFilters
,因此请将其删除。只需将其添加到应用程序级别的build.gradle文件中
bundle {
abi {
enableSplit = true
}
}
第二,您需要高于59的React Native版本来支持App捆绑包。