日志文件有错误吗?

时间:2012-10-25 16:54:38

标签: android aide-ide

我正在开发一款带有“Aide”的Android-App .Aide是一款用Android设备开发Android应用程序的应用程序。当我启动应用程序,我已经创建,我得到一个错误,如“应用程序不幸中止”。我该如何解决发生的错误?有一个日志文件,我可以看到堆栈跟踪?有可能每次发生错误时,对话框会出现堆栈跟踪,而不是消息“应用程序已中止”?感谢所有能帮助我的人。

迎接

·阿尔

4 个答案:

答案 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的许可。