我正在开发一个带有“Aide”的 Android 应用程序。Aide 是一个用于使用 android 设备开发 android 应用程序的应用程序。当我启动应用程序时,我已经创建了一个错误,例如“应用程序已不幸中止”。我该如何解决发生的错误?是否有一个我可以看到堆栈跟踪的日志文件?是否有可能每次发生错误时都会出现带有堆栈跟踪的对话框而不是消息“应用程序已中止”?感谢所有可以帮助我的人。
问候
阿恩
如果您想观察堆栈跟踪,您只需要一个 LogCat 阅读器,例如CatLog。请注意,如果您的设备是更高版本的 Jelly Bean,您将需要 root 权限才能读取日志。
编辑:进一步的研究表明 AIDE 内置了一个 LogCat 阅读器。根权限问题仍然适用。
我从未使用过 Aide,但概念是一样的。您需要能够通过 IDE 在手机上调试您的应用程序。作为 Eclipse 中的一个示例,我将通过 USB 连接我的手机,然后在 Eclipse 中它显示为 AVD 中的 Android 设备。然后我在手机上以调试模式运行我的应用程序,所有错误输出都将在 Logcat 中。否则,您将不得不将调试逻辑编码到您的应用程序中,以便它将自己的日志记录写入您手机上的 fs。
如果您安装了 Android SDK(我猜是这样),那么您可以使用该adb
实用程序访问日志:
adb logcat
这将在出现错误时向您显示堆栈跟踪,以及许多其他非常有用的信息。
您有 3 个选项:
升级到稳定的 Pro 版本以使用 AIDE 上的工作 LogCat
使用apesa提到的USB调试
使用以下函数登录到本地文件:
public void appendLog(String text) // https://stackoverflow.com/a/6209739/8800831
{
File logFile = new File("sdcard/log.file"); if (!logFile.exists()) { 尝试 { logFile.createNewFile(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } try { //BufferedWriter 性能,true 设置附加到文件标志 BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); buf.append(文本); buf.newLine(); 缓冲区。冲洗();buf.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
像这样使用它:
try{
// your code goes here
}catch (Exception e){
appendLog(e);
}
您需要在 Manifest 中添加 write_external_storage 的权限。