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

为Android应用程序创建日志文件,android,exception,logging,Android,Exception,Logging,我想为我的Android应用程序创建一个日志文件。我需要它来调试应用程序的随机崩溃 我想创建一个函数,如果存在未处理的异常,它总是被调用。在日志中,我需要异常消息。在ANdroid中,是否有任何事件类型的机制会在未处理的异常上被调用 尝试使用android 非常好的事情,请尝试一下。您可以编写自己的日志猫 当您的应用程序安装在真正的android设备上,并且没有连接到Eclipse以获取调试详细信息时 请查看教程: 另外,您可能想查看堆栈溢出页面,我已发布了解决方案代码snip和相关有用信息。您

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

我想创建一个函数,如果存在未处理的异常,它总是被调用。在日志中,我需要异常消息。在ANdroid中,是否有任何事件类型的机制会在未处理的异常上被调用

尝试使用android


非常好的事情,请尝试一下。

您可以编写自己的日志猫

当您的应用程序安装在真正的android设备上,并且没有连接到Eclipse以获取调试详细信息时

请查看教程:


另外,您可能想查看堆栈溢出页面,我已发布了解决方案代码snip和相关有用信息。

您可以使用
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"));

为什么logcat输出不够?@Henry该应用程序将安装在设备上,我想通过将日志保存到SDCard来解决它崩溃的原因。当设备通过USB连接到PC时,您可以获得此信息。即使在崩溃后不久才连接设备,也能正常工作。@Henry我想你没有意识到日志文件的重要性。请在网上搜索详细信息谢谢,acra很棒,但我想写我的代码。你能帮忙吗?