不幸的是,MyApp已经停止了。我该如何解决这个问题?问题如何解决?我已经找到了堆栈跟踪,现在该怎么办?我仍然无法解决我的问题!

2022-08-31 04:02:57

我正在开发一个应用程序,每次运行它时,我都会收到以下消息:

不幸的是,MyApp已经停止了。

我能做些什么来解决这个问题?


关于这个问题 - 显然受到什么是堆栈跟踪的启发,以及我如何使用它来调试我的应用程序错误?,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。这个问题旨在指导Android程序员新手如何尝试自己解决问题,或者提出正确的问题。


答案 1

此答案描述检索堆栈跟踪的过程。已经具有堆栈跟踪?阅读“什么是堆栈跟踪,以及如何使用它来调试应用程序错误?”中的堆栈跟踪。

问题

您的应用程序退出,因为抛出了未捕获的磁体。
其中最常见的是NullPointerExceptionRuntimeException

如何解决?

每次 Android 应用程序崩溃(或任何 Java 应用程序)崩溃时,都会将 a 写入控制台(在本例中为 logcat)。此堆栈跟踪包含用于解决问题的重要信息。Stack trace

安卓工作室

Finding the stack trace in Android Studio

在窗口的底部栏中,单击按钮。或者,您可以按 +。确保在面板中选择了您的仿真器或设备。接下来,尝试查找以红色显示的堆栈跟踪。可能有很多东西登录到logcat,所以你可能需要滚动一下。查找堆栈跟踪的一种简单方法是清除 logcat(使用右侧的回收站),然后让应用再次崩溃。Logcatalt6Devices

我已经找到了堆栈跟踪,现在该怎么办?

耶!你解决问题已经走到了一半。
您只需要通过分析堆栈跟踪来找出究竟是什么原因导致应用程序崩溃。

阅读“什么是堆栈跟踪,以及如何使用它来调试应用程序错误?"

我仍然无法解决我的问题!

如果您已经找到了它发生的线,但仍然不知道如何解决它,请不要犹豫,在StackOverflow上提问。Exception

尽量简洁:发布堆栈跟踪和相关代码(例如,在抛出的行上有几行)。Exception


答案 2

您可以使用Google的ADB工具来分析问题。Logcat file

adb logcat > logcat.txt

打开文件并搜索您的应用程序名称。应该有关于失败原因,行号,类名等的信息。logcat.txt