我正在开发一个应用程序,每次运行它时,我都会收到这样的消息:
不幸的是,MyApp已停止。
我可以做什么来解决这个问题?
关于这个问题-显然是受什么是堆栈跟踪以及如何使用它调试应用程序错误的启发?,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。这个问题旨在指导Android新手程序员如何自己解决问题,或者提出正确的问题。
我正在开发一个应用程序,每次运行它时,我都会收到这样的消息:
不幸的是,MyApp已停止。
我可以做什么来解决这个问题?
关于这个问题-显然是受什么是堆栈跟踪以及如何使用它调试应用程序错误的启发?,有很多问题表明他们的应用程序已经崩溃,没有任何进一步的细节。这个问题旨在指导Android新手程序员如何自己解决问题,或者提出正确的问题。
当前回答
只需检查日志cat中的错误。
您可以从eclipse中获得logcat选项:
窗口->显示视图->其他->Android->Logcat
日志目录包含错误。
另外,您也可以通过在调试模式下执行应用程序来检查错误。首先通过以下操作设置断点:
右键单击项目->调试为->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();
}
人们会犯错,编码也是如此。
当发生任何错误时,总是用红色文本检查日志,但是你可以在蓝色文本中找到真正的问题,红色文本中有下划线。
确保如果您创建了一个新活动,请始终在AndroidManifest文件中声明该活动。
如果添加Permission,请在AndroidMainifest文件中声明它。
我会提出类似的建议。
检查你的手机是否有足够的空间让应用程序运行----之前/当应用程序崩溃时检查日志。它将显示应用程序崩溃的确切位置。检查是否在主线程上使用了由于ANR而占用大量内存的内容。
您还可以自行获取此错误消息,而无需任何堆栈跟踪或任何进一步的错误消息。
在这种情况下,您需要确保您的Android清单配置正确(包括库中发生的任何清单合并以及库中的任何活动),并特别注意清单文件中应用程序中显示的第一个活动。
在终端中运行此命令也有助于查找问题:
gradlew build > log.txt 2>details.txt
然后您应该转到gradlew文件位置,读取上面的两个日志文件。