我正在开发一个移动应用程序并使用react-native进行开发。我可以通过以下方式在我的模拟器上成功运行该项目
\n\nreact-native run-android \nRun Code Online (Sandbox Code Playgroud)\n\n我可以使用命令成功发布捆绑包
\n\n./gradlew bundleRelease\nRun 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\njava.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)\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的环境;
\n\nSystem:\n OS: macOS 10.14.4\n CPU: (4) x64 Intel(R) Core(TM) i5-4278U …Run Code Online (Sandbox Code Playgroud)