我正在开发一个应用程序,每次运行它时,我都会收到这样的消息:
不幸的是,MyApp已停止。
我可以做什么来解决这个问题?
关于这个问题-显然是受什么是堆栈跟踪以及如何使用它调试应用程序错误的启发?,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。这个问题旨在指导Android新手程序员如何自己解决问题,或者提出正确的问题。
我正在开发一个应用程序,每次运行它时,我都会收到这样的消息:
不幸的是,MyApp已停止。
我可以做什么来解决这个问题?
关于这个问题-显然是受什么是堆栈跟踪以及如何使用它调试应用程序错误的启发?,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。这个问题旨在指导Android新手程序员如何自己解决问题,或者提出正确的问题。
当前回答
检查Logcat消息并查看Manifest文件。应该缺少定义“活动”、“用户权限”等内容。
其他回答
如果你的应用程序没有任何错误地崩溃,并且你没有使用资产管理器,而是加载了如下纹理:
Texture texture = new Texture("myImage.png"); //dont to this all the time
那就是问题所在。我也遇到过这种情况。你应该经常使用资产管理器来避免内存过载。
如果你的应用程序由于某种原因在没有良好堆栈的情况下崩溃。试着从第一行开始调试它,然后逐行调试直到崩溃。然后你会得到答案,哪一行给你带来了麻烦。很可能,您可以将其包装到try-catch块中并打印错误输出。
此答案描述了检索堆栈跟踪的过程。已经有堆栈跟踪了吗?阅读“什么是堆栈跟踪,如何使用它调试应用程序错误?”中的堆栈跟踪
问题
应用程序退出,因为引发了未捕获的RuntimeException。其中最常见的是NullPointerException。
如何解决?
每当Android应用程序(或任何Java应用程序)崩溃时,堆栈跟踪都会写入控制台(在本例中为logcat)。此堆栈跟踪包含解决问题的重要信息。
Android工作室
在窗口的底部栏中,单击Logcat按钮。或者,您可以按alt+6。确保在“设备”面板中选择了仿真器或设备。接下来,尝试查找以红色显示的堆栈跟踪。可能有很多内容登录到logcat中,因此您可能需要滚动一点。找到堆栈跟踪的一个简单方法是清除logcat(使用右侧的回收站),然后让应用程序再次崩溃。
我找到了堆栈跟踪,现在呢?
耶!你的问题已经解决了一半。您只需要通过分析堆栈跟踪来找出应用程序崩溃的原因。
阅读“什么是堆栈跟踪,如何使用它调试应用程序错误?”中的堆栈跟踪
我仍然无法解决我的问题!
如果您找到了异常及其发生的行,但仍然无法确定如何修复它,请不要犹豫,在StackOverflow上提问。
尽量简洁:发布堆栈跟踪和相关代码(例如,在引发异常的行之前的几行)。
首先,你检查你的应用程序在哪个点崩溃了(不幸的是,MyApp已经停止。)。为此,你可以使用Log.e(“TAG”,“Message”);,使用这一行,您可以在logcat中查看应用程序日志。
之后,你会发现你的应用程序停止了哪一点,这很容易在你身边解决。
只需检查日志cat中的错误。
您可以从eclipse中获得logcat选项:
窗口->显示视图->其他->Android->Logcat
日志目录包含错误。
另外,您也可以通过在调试模式下执行应用程序来检查错误。首先通过以下操作设置断点:
右键单击项目->调试为->Android应用程序