我正在开发一个应用程序,每次运行,都会收到这样的信息:
Unfortunately, MyApp has stopped.
我能做什么来解决这个问题呢?
问题所在
应用程序退出,因为弹出了未捕获的 RuntimeException。其中最常见的是 NullPointerException。
如何解决?
每当一个 Android 应用程序崩溃(或者任何 Java 应用程序崩溃) ,就会向控制台(在本例中是 logcat)写入一个 Stack 跟踪。此堆栈跟踪包含解决问题的重要信息。
在窗口的底部栏中,单击 Logcat 按钮。 或者,你可以按 alt + 6。 确保在设备面板中选择了模拟器或设备。 接下来,尝试找到堆栈跟踪,是红色的。可能有很多东西登录到 logcat,所以你可能需要往下滚动。 找到堆栈跟踪的一个简单方法是清除 logcat (使用右边的回收站) ,然后让应用程序再次崩溃。
你可以使用 Google's ADB tool获取 Logcat file 来分析这个问题。
adb logcat > logcat.txt
打开 logcat.txt 文件并搜索应用程序名称。应该有关于失败原因的信息,行号,类名等等。
首先,检查应用程序崩溃的位置(不幸的是,MyApp 已经停止了) . 为此,您可以使用 Log.e("TAG", "Message"); 使用这一行您可以看到您的应用程序在 logcat 中的日志。
在那之后,你会发现你的应用程序停止了哪里,这个问题很容易就解决了。