UnsatisfiedLinkError libreactnativejni.so应用程序捆绑包

时间:2019-09-04 06:01:17

标签: android react-native google-play android-app-bundle

我目前在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是否不能在有根设备上使用,还是我在犯其他错误?

1 个答案:

答案 0 :(得分:1)

如果您使用的是App捆绑包,则无需指定ndk.abiFilters,因此请将其删除。只需将其添加到应用程序级别的build.gradle文件中

bundle {
  abi {
     enableSplit = true
  }

}

第二,您需要高于59的React Native版本来支持App捆绑包。