Android ICS(api 14)引入了ApplicationErrorReport类,其中包含以下信息:
CrashInfo BatteryInfo和ANRInfo。从类概述中,该类似乎是指设备上安装的所有应用程序,而不是用于调试您自己的个人应用程序。
我似乎无法获取该信息(模拟的崩溃和错误响应)

我尝试了这段代码:

ApplicationErrorReport appp = new ApplicationErrorReport();
CrashInfo test = appp.crashInfo;
Log.i(test.stackTrace);

但我得到的测试是null
如何获取崩溃信息?

最佳答案

ApplicationErrorReport API中说:



这意味着错误的“类型”是不确定的,因此它不是崩溃报告,因此crashinfo为null。

编辑:
我看了看source code。您可以通过readFromParcel(in)方法实例化CrashInfo部分,其中包裹中的第一个int是与ApplicationErrorReport.TYPE_CRASH对应的int。另外,您可以自己创建一个CrashInfo对象,并将其分配给ApplicationErrorReport,但是如果要填充CrashInfo数据,则再次需要一个包裹。

我尝试查找使用它的代码,但是我唯一能找到的就是 ApplicationManagerNative (也使用包裹)。

case HANDLE_APPLICATION_CRASH_TRANSACTION: {
        data.enforceInterface(IActivityManager.descriptor);
        IBinder app = data.readStrongBinder();
        ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data);
        handleApplicationCrash(app, ci);
        reply.writeNoException();
        return true;
})

10-07 22:25