小编Emr*_*cer的帖子

React-native Android 捆绑包版本无法在某些设备上运行

我正在开发一个移动应用程序并使用react-native进行开发。我可以通过以下方式在我的模拟器上成功运行该项目

\n\n
react-native run-android \n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以使用命令成功发布捆绑包

\n\n
./gradlew bundleRelease\n
Run Code Online (Sandbox Code Playgroud)\n\n

我什至可以成功地将我的应用上传到 Google Play 商店。\n问题是某些设备无法安装该应用。它会失败。

\n\n

在互联网上搜索后,我发现问题是不同设备上的各种不同的 cpu 架构(据我所知)。我的模拟器使用 32 位 cpu (x86),并且构建在我的模拟器上成功运行。

\n\n

我没有 Android 设备,因此我发现调试错误的最佳方法是使用 Firebase 的“测试实验室”并观察输出。

\n\n

我相信除了CPU架构之外还有另一个问题,那就是Hermes。我在app/build.gradle中禁用了hermes,但是当我发布一个包并在Firebase测试实验室上测试它时,应用程序将失败并给我这个输出;

\n\n
java.lang.UnsatisfiedLinkError: couldn\'t find DSO to load: libhermes.so\n     FATAL EXCEPTION: create_react_context\nProcess: com.lockerapp, PID: 18180\njava.lang.UnsatisfiedLinkError: couldn\'t find DSO to load: libhermes.so\n    at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)\n    at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)\n    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)\n    at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)\n    at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:20)\n    at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)\n    at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:949)\n    at java.lang.Thread.run(Thread.java:764)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的环境;

\n\n
System:\n    OS: macOS 10.14.4\n    CPU: (4) x64 Intel(R) Core(TM) i5-4278U …
Run Code Online (Sandbox Code Playgroud)

64-bit android build react-native android-app-bundle

5
推荐指数
1
解决办法
3501
查看次数