我想以编程方式获取 Android 中的应用程序崩溃信息,而不使用第 3 方应用程序或 bugsense 等 jars

问题描述 投票:0回答:3

我有一个基于 webview 的 android 应用程序,我想获取崩溃报告并将其存储到文本文件中,但我无法在任何地方找到任何编程本机解决方案。我已阅读this文章,但无法使用它。我没有代码,因为我不知道从哪里开始

java android exception crash crash-dumps
3个回答
2
投票

处理崩溃日志的最佳方法是创建 UncaughtExceptionHandler 并根据您的要求进行处理。创建一个 BaseActivity 类并用它扩展所有活动,并将这些代码放入 BaseActivity 类中。

private Thread.UncaughtExceptionHandler handleAppCrash = 
                                     new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        Log.e("error", ex.toString());
        //send email here
    }
};

然后只需使用 BaseActivity 的 onCreate() 方法即可启用

Thread.setDefaultUncaughtExceptionHandler(handleAppCrash);

0
投票

我通过在活动的 onCreate() 中使用它来捕获未处理的异常:

mUEHandler = new Thread.UncaughtExceptionHandler() {

        @Override
        public void uncaughtException(Thread t, Throwable e) {
            try {

                PrintWriter pw = new PrintWriter(new OutputStreamWriter(
                        openFileOutput(DMP_FILENAME, 0)));
                e.printStackTrace(pw);
                pw.flush();
                pw.close();
            } catch (FileNotFoundException e1) {
                // do nothing
            }
            BaseActivity.this.finish();
        }
    };

    Thread.setDefaultUncaughtExceptionHandler(mUEHandler);

这会将您的应用程序中发生的 Activity 中的每个未处理的异常写入文本文件。然后就可以分析了。


-1
投票

为什么不记录像 Log.e("tag","msg") 这样的所有内容,或者检查 logcat 是否有崩溃情况

© www.soinside.com 2019 - 2024. All rights reserved.