相关疑难解决方法(0)

反应原生 0.61.5 Crashlytics 缺少 libhermes.so:SoLoader.java com.facebook.soloader.SoLoader.assertInitialized

我正在构建一个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

8
推荐指数
1
解决办法
2290
查看次数

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
查看次数

Expo - APK 包必须包含预期的嵌入资产

我是 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)

有人可以向我解释它是如何工作的,因为我在我的资产文件夹中查找了它,没有类似的名称。我该如何解决这个问题?谢谢

android react-native expo

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