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

不幸的是,MyApp已停止。

我可以做什么来解决这个问题?


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


当前回答

在下面的showToast()方法中,您必须为上下文或应用程序上下文传递另一个参数,这样您就可以尝试。

  public void showToast(String error, Context applicationContext){
        LayoutInflater inflater = getLayoutInflater();
        View view = inflater.inflate(R.layout.custom_toast, (ViewGroup)      
        findViewById(R.id.toast_root));
        TextView text = (TextView) findViewById(R.id.toast_error);
        text.setText(error);
        Toast toast = new Toast(applicationContext);
        toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(view);
        toast.show();
}

其他回答

只需检查日志cat中的错误。

您可以从eclipse中获得logcat选项:

窗口->显示视图->其他->Android->Logcat

日志目录包含错误。

另外,您也可以通过在调试模式下执行应用程序来检查错误。首先通过以下操作设置断点:

右键单击项目->调试为->Android应用程序

检查您的Logcat消息。此外,请参阅Manifest文件以查找缺少的元素,如定义“活动”、用户权限等。

若要查看Logcat,如果您使用Android Studio,请按alt+6或

如果您使用Eclipse,那么窗口->打开透视->其他-LogCat

现在,从下拉菜单中选择error。

或者,您可以使用ADB工具获取Logcat文件来分析问题。

adb logcat > logcat.txt

现在打开logcat.txt文件并搜索应用程序名称。应该提供失败原因、行号、类名等信息。

人们会犯错,编码也是如此。

当发生任何错误时,总是用红色文本检查日志,但是你可以在蓝色文本中找到真正的问题,红色文本中有下划线。

确保如果您创建了一个新活动,请始终在AndroidManifest文件中声明该活动。

如果添加Permission,请在AndroidMainifest文件中声明它。

如果你的应用程序没有任何错误地崩溃,并且你没有使用资产管理器,而是加载了如下纹理:

Texture texture = new Texture("myImage.png"); //dont to this all the time

那就是问题所在。我也遇到过这种情况。你应该经常使用资产管理器来避免内存过载。

使用LogCat并尝试查找导致应用程序崩溃的原因。

如果您使用Android Studio,请按ALT+6查看Logcat或

如果您使用Eclipse,那么窗口->打开透视->其他-LogCat

转到LogCat,从下拉菜单中选择错误。这将包含帮助您调试所需的所有信息。如果这没有帮助,发布LogCat作为对您问题的编辑,有人会帮助您解决问题。