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

不幸的是,MyApp已停止。

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


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


当前回答

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

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

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

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

其他回答

您可以使用Google的ADB工具获取Logcat文件来分析问题。

adb logcat > logcat.txt

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

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

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

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

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

在下面的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();
}

您还可以自行获取此错误消息,而无需任何堆栈跟踪或任何进一步的错误消息。

在这种情况下,您需要确保您的Android清单配置正确(包括库中发生的任何清单合并以及库中的任何活动),并特别注意清单文件中应用程序中显示的第一个活动。

在终端中运行此命令也有助于查找问题:

gradlew build > log.txt 2>details.txt

然后您应该转到gradlew文件位置,读取上面的两个日志文件。