为Android应用程序创建日志文件。

4

我想为我的Android应用创建一个日志文件。我需要这个来调试应用程序的随机崩溃。

我想创建一个函数,如果有未处理的异常,就会被调用。在日志中,我希望看到异常信息。有没有任何事件机制会在Android上未处理的异常时被调用?


为什么仅凭logcat输出不够? - Henry
@Henry 应用将被安装在设备上,我想通过将日志保存到SD卡来排除崩溃问题。 - user1310152
当设备通过USB连接到电脑时,您可以获取此信息。即使在崩溃后仅短暂连接设备也可以使用。 - Henry
@Henry,我认为您不了解日志文件的重要性。请在网上搜索详细信息。 - user1310152
3个回答

2
您可以按照以下方式使用UncaughtExceptionHandler
public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
    String Tag;
    Context myContext;
    public UncaughtExceptionHandler(Context context, String TAG) {
        Tag = TAG;
        myContext = context;
    }  

    public void uncaughtException(Thread thread, Throwable exception) {
        StringWriter sw = new StringWriter();
        exception.printStackTrace(new PrintWriter(sw));
        Logger.appendErrorLog(sw.toString(), Tag);
        Intent intent = new Intent(myContext, ForceClose.class);
        intent.putExtra(BugReportActivity.STACKTRACE, sw.toString());
        myContext.startActivity(intent);
        Process.killProcess(Process.myPid());
        System.exit(10);
    }
}

在第一个活动的onCreate()方法中调用此类:

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(getApplicationContext(),"FirstActivity"));

2

尝试使用安卓Android Acra

非常好的东西,请一定试用。


谢谢,ACRA很棒,但我想自己编写代码。你能帮忙吗? - user1310152

2
你可以编写自己的日志记录器,当你的应用程序安装在真实的Android设备上并且未连接到Eclipse以获取调试详细信息时。
请查看教程:在Android中以编程方式读取和存储Logcat
同时,您可能还想查看 stack-overflow页面,我已发布解决方案代码片段和相关有用信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接