我遵循了 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
之后的样子:
我尝试在安装 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/