我正在开发一款带有“Aide”的Android-App .Aide是一款用Android设备开发Android应用程序的应用程序。当我启动应用程序,我已经创建,我得到一个错误,如“应用程序不幸中止”。我该如何解决发生的错误?有一个日志文件,我可以看到堆栈跟踪?有可能每次发生错误时,对话框会出现堆栈跟踪,而不是消息“应用程序已中止”?感谢所有能帮助我的人。
迎接
·阿尔
答案 0 :(得分:2)
如果您想观察堆栈跟踪,您需要的只是一个LogCat读取器,例如CatLog。请注意,如果您的设备是更高的Jelly Bean,则需要root权限才能读取日志。
编辑: 进一步的研究表明,AIDE内置了一个LogCat阅读器。根权限问题仍然适用。
答案 1 :(得分:0)
我从未使用过Aide,但概念将是相同的。您需要能够通过IDE在手机上调试应用程序。作为Eclipse中的一个例子,我将通过usb连接我的手机,然后在Eclipse中它将在AVD中显示为Android设备。然后我在手机上以调试模式运行我的应用程序,所有错误输出都将在Logcat中。否则,您必须将调试逻辑编码到您的应用程序中,以便将其自己的日志记录写入您手机上的fs。
答案 2 :(得分:0)
如果您安装了Android SDK(我猜是这种情况),那么您可以使用adb
实用程序来访问日志:
adb logcat
这将在出现错误时显示堆栈跟踪,以及许多其他有用的信息。
答案 3 :(得分:0)
自Jelly Bean以来,应用程序需要root才能访问LogCat日志。您有3个选择:
1)锁定您的设备以解锁对logcat的AIDE访问
2)使用apesa所述的USB调试
3)使用以下功能登录到本地文件:
public void appendLog(String text)
// https://stackoverflow.com/a/6209739/8800831
{
File logFile = new File("sdcard/log.file");
if (!logFile.exists())
{
try
{
logFile.createNewFile();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try
{
//BufferedWriter for performance, true to set append to file flag
BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
buf.append(text);
buf.newLine();
buf. flush();
buf.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
像这样使用它:
try{
// your code goes here
}catch (Exception e){
appendLog(e);
}
您需要在清单中添加对Writing_external_storage的许可。