我正在构建一个React-Native应用程序,一切正常,直到我决定从版本 0.59.x 升级到v 0.61.5。
当我尝试在 Play 商店中发布我的应用程序时,Firebase Crashlytics ( v 6.2.0 )报告了很多崩溃——尽管我的版本仅用于内部测试,所以它必须是一个预由 playstore 触发的启动报告- 对于完全相同的设备 => LGE Nexus 5X with android 6.0.1完全相同。
Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
at com.facebook.soloader.SoLoader.assertInitialized(SoLoader.java)
at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java)
at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java)
at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我尝试提交多个具有略微不同 android 配置的版本(例如启用和不启用 hermes),但它不会改变最终结果。
这是我的build.gradle文件:
apply plugin: "com.android.application"
apply plugin: "io.fabric"
import com.android.build.OutputFile
/**
* The react.gradle file registers …Run Code Online (Sandbox Code Playgroud) android firebase crashlytics react-native react-native-hermes
我正在开发一个移动应用程序并使用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) 我是 React 新手,我尝试运行我的应用程序,但出现以下错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bits.bee.bwc, PID: 12601
java.lang.AssertionError: APK bundle must contain the expected embedded asset asset_c2f3d742a18a28238b7cd34a5d4b7316.png
at expo.modules.updates.loader.EmbeddedLoader.copyAllAssets(EmbeddedLoader.java:174)
at expo.modules.updates.loader.EmbeddedLoader.processManifest(EmbeddedLoader.java:137)
at expo.modules.updates.loader.EmbeddedLoader.loadEmbeddedUpdate(EmbeddedLoader.java:57)
at expo.modules.updates.UpdatesController.start(UpdatesController.java:286)
at expo.modules.updates.UpdatesController.initialize(UpdatesController.java:96)
at com.bits.bee.bwc.MainApplication.onCreate(MainApplication.java:98)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4552)
at android.app.ActivityThread.access$1500(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5255)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释它是如何工作的,因为我在我的资产文件夹中查找了它,没有类似的名称。我该如何解决这个问题?谢谢