android - 安装 react-navigation 后 React Native : app doesn't load, 但没有错误消息

标签 android react-native npm

我遵循了 React Native 的 get started 中的所有步骤。页面,包括运行 npx react-native init AwesomeProject 创建一个入门项目。 (我正在遵循“React Native CLI 快速入门”/“macOS”/“Android”的步骤)。然后我打开 Android Studio,启动模拟器,cd 进入项目文件夹,然后运行 ​​npx react-native run-android。一切正常。我可以在这里和那里调整启动项目,重新加载,一切正常。

但我需要使用 React Navigation。我按照步骤 here显然 React Navigation 安装没有任何问题。然后,当我再次运行 npx react-native run-android 时,事情会成功构建,并且 Metro 事情 - 单独的终端选项卡/窗口 - 说“完成”。但是模拟器没有显示我的应用程序。一秒钟它显示一个空白页面,然后消失,我得到了模拟器的主屏幕。即使我根本不调整启动代码 - 我什至没有尝试导入 React Navigation,导致此错误所需要做的就是安装它。

这是我的终端标签在 npx react-native run-android 之后的样子:

enter image description here

enter image description here

我尝试在安装 React Navigation 后关闭终端和 Android Studio。一样的。

我使用的是 macOS 10.15.3 和 Android Studio 3.5.3。

我做错了什么?

最佳答案

我也看到了这个问题。

旁白:我使用 Android Studio 的 logcat 查看启动我的应用程序时产生的任何错误。我的 logcat 包含以下错误。虽然这对我帮助不大。

--------- beginning of crash
2020-05-04 12:14:45.284 6139-6170/com.gettingstarted E/AndroidRuntime: FATAL EXCEPTION: FlipperConnectionThread
    Process: com.gettingstarted, PID: 6139
    java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.flipper.android.EventBase; see exception in other thread
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
2020-05-04 12:14:45.285 6139-6169/com.gettingstarted E/AndroidRuntime: FATAL EXCEPTION: FlipperEventBaseThread
    Process: com.gettingstarted, PID: 6139
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfbjni.so result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:825)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:673)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:611)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:559)
        at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:25)
        at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:44)
        at com.facebook.jni.HybridData.<clinit>(HybridData.java:34)
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
2020-05-04 12:14:45.416 6171-6178/? E/.gettingstarte: Failed to send DDMS packet REAQ to debugger (-1 of 20): Broken pipe
2020-05-04 12:14:45.709 6171-6171/? E/SoLoader: couldn't find DSO to load: libjscexecutor.so result: 0
2020-05-04 12:14:45.800 6171-6203/? E/SoLoader: couldn't find DSO to load: libfbjni.so result: 0
2020-05-04 12:14:45.801 6171-6204/? E/AndroidRuntime: FATAL EXCEPTION: FlipperConnectionThread
    Process: com.gettingstarted, PID: 6171
    java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.flipper.android.EventBase; see exception in other thread
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
2020-05-04 12:14:45.801 6171-6203/? E/AndroidRuntime: FATAL EXCEPTION: FlipperEventBaseThread
    Process: com.gettingstarted, PID: 6171
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfbjni.so result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:825)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:673)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:611)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:559)
        at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:25)
        at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:44)
        at com.facebook.jni.HybridData.<clinit>(HybridData.java:34)
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
2020-05-04 12:14:45.817 1656-1656/? E/lowmemorykiller: Error writing /proc/6171/oom_score_adj; errno=22
2020-05-04 12:14:45.905 1775-1804/? E/SurfaceFlinger: ro.sf.lcd_density must be defined as a build property

我在网上搜索时发现有人说要清洁您的环境。因此我做了以下

  • 创建了一个新的模拟器:仍然没有更改问题
  • 删除“node_modules”和“package-lock.json”,然后运行“npm install”:无变化
    问题仍然存在
  • 清理了所有缓存/“node_modules”/“package-lock.json”:仍然没有更改问题
    • 删除了高速缓存(在我的机器上它在“rm -rf $TEMP/metro-cache”中,其他人说它在“rm -rf $TEMP/metro-bundler-cache-*”中)
    • 其他人说要删除“rm -rf $TEMP/react-native-packager-cache-*”,但我的 Windows 机器上没有“react-native-packager-cache”文件夹
    • 删除 node_modules 和 package-lock.json 然后运行“npm install”
    • “npm 缓存清理 --force”

我终于得到了一个工作环境

  • 删除“node_modules”和“package-lock.json”
  • “npm 安装”
  • “cd android”
  • “gradle clean”
  • 返回根目录运行应用

对我来说,清除 Android 下的 gradle 缓存似乎是关键步骤。

关于android - 安装 react-navigation 后 React Native : app doesn't load, 但没有错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60377407/

相关文章:

javascript - 使用相同 View 的 React-Native 2 按钮

node.js - 在全局 npm install 上构建 Git 依赖

android - Android中SharedPreferences的加密

javascript - 如何在 React Native 上更改 iOS 中的 Audio Session 类别?

javascript - 处理循环内动态选择器的点击 react native

Npm 安装使 Windows 崩溃

Angular:升级到版本 5 错误:@angular/compiler-cli 的版本需要为 2.3.1 或更高版本。当前版本是 "5.0.0"

android - 在 Android 中获取 "satellites in view"和 "satellites in use"计数

android - 如何比较 Firebase 中的 UID 和另一个子 key ?

android - 应用程序 :tabMode fixed vs scrollable