我正在开发一个应用程序,每次运行时都会收到以下消息:
很抱歉,MyApp已停止运行。
我应该怎么做才能解决这个问题?
关于这个问题 - 显然受到了“什么是堆栈跟踪,我如何使用它来调试我的应用程序错误?”的启发,有很多问题声称他们的应用程序崩溃了,但没有提供更多的细节。这个问题旨在指导初学者Android程序员如何自己尝试解决问题,或者提出正确的问题。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以使用Google的ADB工具来获取
Logcat文件以分析问题。打开
logcat.txt文件并搜索您的应用程序名称。应该会有关于失败原因、行号、类名等信息。这个答案描述了检索堆栈跟踪的过程。已经有了堆栈跟踪?在"什么是堆栈跟踪,我如何使用它来调试我的应用程序错误?"中阅读有关堆栈跟踪的内容。
问题
您的应用程序退出,因为抛出了未捕获的
RuntimeException。其中最常见的是
NullPointerException。如何解决?
每当Android应用程序崩溃(或任何Java应用程序),都会将
堆栈跟踪写入控制台(在本例中为logcat)。此堆栈跟踪包含解决问题所需的重要信息。Android Studio
在窗口的底部栏中,点击
Logcat按钮。或者,您可以按下alt+6。确保在设备面板中选择了您的模拟器或设备。接下来,尝试找到以红色显示的堆栈跟踪。logcat中可能记录了很多内容,因此您可能需要滚动一下。找到堆栈跟踪的简单方法是清除logcat(使用右侧的回收站),然后让应用程序再次崩溃。我找到了堆栈跟踪,现在怎么办?
耶!您已经完成了一半的问题解决过程。
您只需要通过分析堆栈跟踪找出到底是什么导致了应用程序崩溃。
在"什么是堆栈跟踪,我如何使用它来调试我的应用程序错误?"中阅读有关堆栈跟踪的内容。
我仍然无法解决我的问题!
如果您已经找到了
异常和它发生的行,并且仍然无法弄清楚如何修复它,请毫不犹豫地在StackOverflow上提问。尽量简洁明了:发布堆栈跟踪和相关的代码(例如,从抛出
异常的行往上几行代码)。