React Native应用程序在Android模拟器上保持关闭

Uza*_*sal 6 android android-emulator react-native react-native-android

我正在尝试在android模拟器(react-native run-android)上运行一个react本机应用程序,但它一直崩溃错误消息"MYAPP已经停止".我想弄清楚我可以在哪里进一步调试(错误消息,日志等).我没有在终端上或模拟器本身上看到任何错误消息.所以除了试图解决为什么应用程序不会部署...在Android模拟器上进一步调试应用程序部署问题的人在哪里?

在此输入图像描述

旁注:我从版本0.31.0升级到0.32.0并运行react-native upgrade命令,这也要求覆盖一些文件(我选择覆盖所有文件的选项).我是否应该担心从升级到0.32.0的最新变化不起作用或不完整?我可以采取哪些步骤来验证最新的更改?

更新:我创建了一个新的示例反应本机项目,以查看RN的最新版本是否有问题.它工作正常.然后在index.android.js中获取示例代码并在我的项目的index.android.js中覆盖它并重新运行.尝试将其部署到Android模拟器时仍然遇到同样的问题.删除了node_modules目录,reran,仍然是同样的问题.我现在认为这与升级过程有关......这非常令人沮丧.

更新v2:感谢@GabeSechan的提示和方向,这里是我找到的堆栈跟踪:

09-04 03:24:41.297  5008  5008 E AndroidRuntime: FATAL EXCEPTION: main
09-04 03:24:41.297  5008  5008 E AndroidRuntime: Process: com.helpr, PID: 5008
09-04 03:24:41.297  5008  5008 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.helpr/com.helpr.MainActivity}: java.lang.ClassCastException: android.app.Application cannot be cast to com.facebook.react.ReactApplication
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread.-wrap12(ActivityThread.java)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:154)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6077)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
09-04 03:24:41.297  5008  5008 E AndroidRuntime: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.facebook.react.ReactApplication
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at com.facebook.react.ReactActivity.getUseDeveloperSupport(ReactActivity.java:89)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at com.facebook.react.ReactActivity.onCreate(ReactActivity.java:96)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.Activity.performCreate(Activity.java:6664)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
09-04 03:24:41.297  5008  5008 E AndroidRuntime:    ... 9 more
Run Code Online (Sandbox Code Playgroud)

快速谷歌搜索后,似乎这是升级React Native时存在的问题.我会发一个答案,回答我自己的问题.

Ahm*_*ish 9

如果您最近更改了 gradle 配置或 androidmanifest.xml 中的任何内容,例如包名称等,那么您必须清理 gradle 文件:

要解决这个问题:

cd android
./gradlew clean
Run Code Online (Sandbox Code Playgroud)

这应该删除您的旧构建目录并生成一个新目录


Uza*_*sal 4

事实证明,如果您要升级 React Native,请注意升级过程不一定会更新所有必需的文件(在撰写本文时,升级到 RN 0.32.0)。事实证明这是一个已知问题(https://github.com/facebook/react-native/issues/8215)。在此问题解决之前,您需要手动更新位于 的 AndroidManifest.xml 文件./android/app/src/main/AndroidManifest.xml。我建议创建一个示例 React Native 项目,并使用其中新创建的 AndroidManifest.xml手动更新现有项目中的项目。此外,每当您升级时,请在新创建的 RN 项目和您自己的项目之间进行比较,以验证是否不需要更新其他文件。