我正在为我的android项目使用crashlytics,我的要求是在应用程序崩溃时,我想要自己的自定义反馈活动,并且我也想将此记录为crashlytics中的致命异常。我尝试了可接受的答案中的方法: Crashlytics Android SDK - custom UncaughtExceptionHandler,但是异步初始化对我而言并不成功。因此,我尝试同步初始化,例如:
Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// launch feed back activity
Intent intent = new Intent();
intent.setAction("com.project.SEND_LOG");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
defaultUncaughtExceptionHandler.uncaughtException(thread, ex);
}
});
但这不会启动反馈活动(尽管执行了用于启动反馈活动的代码),而是显示了android中默认的应用崩溃行为。 有人可以帮我吗?
答案 0 :(得分:3)
谢谢。 Crashlytics并未正式支持此功能。如果您确实找到了解决方法,则我们无法保证随着更新我们的SDK可以继续解决该问题。
答案 1 :(得分:0)
来自官方代码示例https://fabric.io/kits/android/crashlytics/features:
确保Fabric.with()行位于所有其他第三方SDK之后 设置了UncaughtExceptionHandler
在您的AndroidManifest中添加元数据
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
首先安装UncaughtExceptionHandlers,然后启动Fabric。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set all your UncaughtExceptionHandlers
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());
// Start your Crashlytics manually
Fabric.with(this, new Crashlytics());
...
}
}
然后,您可以从crashlytics获取报告,并在自己的UncaughtExceptionHandler中捕获错误。 它可以在我的API27移动版上与crashlytics:2.10.1
一起使用