从另一个函数中的异常对象获取堆栈跟踪

时间:2013-06-14 22:55:39

标签: android exception stack-trace

我正在使用android库,我正在跟踪我的应用程序中的崩溃。

我有一个测试应用程序,我将它抛出异常,然后我将此异常传递给我的库。我需要做的是获取此异常的stacktrace。

以下是我调用该函数的方法。

catch (NullPointerException ex)
        {
            CrashReporter.ReportCrash(ex);
        }

我得到异常细节的函数,我还需要堆栈跟踪。

public static void ReportCrash(Object exceptionObject)
    {
        String exceptionType = exceptionObject.getClass().getName();
        Log.d("Exception Type", exceptionType);
        Log.d("Device Name", android.os.Build.MODEL);
        Log.d("Device Brand", android.os.Build.BRAND);
        Log.d("Android API Level", String.valueOf(android.os.Build.VERSION.SDK_INT));
        Log.d("Android Name", CommonTasks.convertApiLevelToAndroidName(android.os.Build.VERSION.SDK_INT));
        Log.d("Screen Resolution", CritiMon.appContext.getResources().getDisplayMetrics().widthPixels + " x " + CritiMon.appContext.getResources().getDisplayMetrics().heightPixels);
        Log.d("Exception", exceptionObject.toString());

    }

1 个答案:

答案 0 :(得分:1)

for (StackTraceElement element : exceptionObject.getStackTrace()) {
    Log.d("Exception", element.toString());
}

要么将exceptionObject更改为Exception,要么将其投放到getStackTrace()