and*_*per 4 android crashlytics
我们使用Crashlytics SDK来管理应用程序崩溃并获取有关它们的所需信息.
到目前为止,SDK自动收集的信息已足够
我想为每次崩溃添加更多信息,例如:可用和总堆内存,活动堆栈,......
事实是,我没有看到实现这一目标的方法.
我知道Android框架使用未处理的异常的方式非常简单(使用Thread.setDefaultUncaughtExceptionHandler),它可能是SDK的工作原理,但我找不到在哪里使用SDK本身的监听器.
该SDK有一个监听器,但似乎这不是当前会话的,如图所示这里.函数名称为"crashlyticsDidDetectCrashDuringPreviousExecution",表示它是上一个会话的名称.之前在已弃用的方法中可以使用相同的回调.
有没有办法在发生崩溃时立即向Crashlytics添加额外信息?
如果是这样,怎么样?
Cli*_*gts 11
尝试创建UncaughtExceptionHandler并使用Custom Key(s)存储要与崩溃报告关联的信息.
在uncaughtException方法中添加自定义逻辑来设置您的密钥,例如Crashlytics.setString("available_memory", "5784");
当您的应用崩溃时,请检查您的Crashlytics信息中心以查看您的自定义键
创建一个自定义Application子类来保存您的逻辑:
public class MyApplication extends Application {
private static Thread.UncaughtExceptionHandler mDefaultUncaughtExceptionHandler;
private static Thread.UncaughtExceptionHandler mCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// Custom logic goes here
// Calculate available memory
Crashlytics.setString("available_memory", "5784");
// This will make Crashlytics do its job
mDefaultUncaughtExceptionHandler.uncaughtException(thread, ex);
}
};
@Override
public void onCreate() {
super.onCreate();
// Order is important!
// First, start Crashlytics
Crashlytics.start(this);
// Second, cache a reference to default uncaught exception handler
mDefaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
// Third, set custom UncaughtExceptionHandler
Thread.setDefaultUncaughtExceptionHandler(mCaughtExceptionHandler);
}
}
Run Code Online (Sandbox Code Playgroud)
请记住在AndroidManifest.xml的标记中指定Application子类的名称
<application android:name="MyApplication">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3192 次 |
| 最近记录: |