【问题标题】:React Native app crashes immediately on device but works on simulator?React Native 应用程序立即在设备上崩溃但在模拟器上工作?
【发布时间】:2021-12-23 19:02:19
【问题描述】:

我有一个 Expo React-Native 应用程序,它在模拟器上运行良好,但在处于发布模式的设备上时立即崩溃。我在我的应用程序的崩溃和 ANR 错误部分看不到任何内容。我可以做些什么来调试这个问题?

我用来在模拟器上测试的东西

npx react-native run-android --variant=release

我使用什么来构建版本

./gradlew bundleRelease

【问题讨论】:

  • 在设备上安装并在启用usb debugging后运行它并检查logcat中的崩溃痕迹
  • 或者你可以安装 Flipper fbflipper.com 并检查来自 Flipper 的崩溃日志
  • 亲爱的@JamesAnderbard,请添加更多信息
  • 我在手机上安装并通过usb调试连接,在logcat中发现错误:现在正在解决剩余的错误
  • 当前出现以下错误,不知道如何解决:stackoverflow.com/questions/70539379/…

标签: android react-native


【解决方案1】:

这里有一些提示给你:

1- 目前,必须先导入 react-native-gesture-handler 才能使发布版本正常工作而不会崩溃。

在 index.js 的最顶部添加这一行:

import 'react-native-gesture-handler';

然后尝试再次清理并重建版本。

2-AppRegistry.registerComponent('App', App); 当它实际上应该是这样的时候

AppRegistry.registerComponent('App', () => App);

3- 你应该把 --minify=false 放在 android/app/build.gradle 的 extraPackagerArgs 中

如果编译器认为未使用某些类/函数/方法,可能会被忽略并且不包含在发布版本中。在您的情况下,编译器可能没有包含 expo.modules.updates.UpdatesController 或整个 expo 库。

project.ext.react = [
    entryFile: "index.js",
    extraPackagerArgs: [ '--minify=false' ],
];

4- 可能是重复资产或android bundle,关注this instruction

5- 如果以上步骤均无效,请尝试使用 Flipper 进行调试,按照here 的说明进行操作

【讨论】:

    【解决方案2】:

    我曾经有过类似的情况。我使用了一个库来创建 uuid,并且该库使用了并非在每个 android 设备上都可用的 nodeJs 加密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多