我在使用Fabric / Crashlytics时遇到了一些问题。
我正在使用Android Studio 1.3.2
这是我的build.gradle
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
android {
...
}
dependencies {
...
compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
transitive = true;
}
}
我在清单中添加了api密钥(我添加了元数据com.crashlytics.ApiKey,以及io.fabric.ApiKey)。
我在Application类中启动Fabric
Fabric.with(this, new Crashlytics());
问题是Beta正在运行(我可以共享,更新,打开应用程序),Answers正在运行(会话列出并且所有内容),我甚至可以使用
记录异常Crashlytics.logException("Test");
非致命崩溃将添加到Fabric仪表板。
但出于某种原因,没有报告“致命”崩溃并将其发送给Fabric。有人可以帮帮我吗?可能是什么原因?我做错了什么?
顺便说一下 - 从Crashlytics更新到Fabric之后,这种情况开始发生了。我重新安装了插件,已删除的应用并再次添加,尝试没有适用于Android Studio的插件。
答案 0 :(得分:5)
尝试添加:
Fabric.with(this, new Crashlytics());
到您的Application类, 用于测试崩溃报告:
Crashlytics.getInstance().crash();
报告非致命性使用:
Crashlytics.log("Your log");
Crashlytics.logException(new Throwable("This your not-fatal name"));
答案 1 :(得分:5)
截至目前,你需要将面料api更新到最新的2.9.3 for android和 在你的主文件中,你需要在create()方法
的最后一个中添加它final Fabric fabric = new Fabric.Builder(this)
.kits(new Crashlytics())
.debuggable(true)
.build();
Fabric.with(fabric);
答案 2 :(得分:3)
我的问题略有不同。在我的项目中添加了Answers依赖项后,我的Crashlytics突然停止了崩溃事件。
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile('com.crashlytics.sdk.android:answers:1.3.10@aar') {
transitive = true;
}
解决方案只是删除Answers依赖项。你不需要它,因为它已经存在于crashlytics pacakge com.crashlytics.android.answers。*。
这可能会对某些用户有所帮助。
答案 3 :(得分:2)
确保未设置默认的未捕获异常处理程序(Thread.setDefaultUncaughtExceptionHandler)。这就是我的问题。
答案 4 :(得分:0)
使用后
final Fabric fabric = new Fabric.Builder(this)
.kits(new Crashlytics())
.debuggable(true)
.build();
Fabric.with(fabric);
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
implementation 'com.crashlytics.sdk.android:answers:1.4.7'
将此添加到AndroidManifest.xml
<meta-data
android:name="io.fabric.ApiKey"
android:value="MyFabricApiKey" />
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
它可以正常工作,在Firebase和Fabric面板中同时显示CRASH。谢谢。...
答案 5 :(得分:0)
Crashlytics.getInstance().crash(); // it is deprecated
现在可以使用了,
throw new RuntimeException("This is a crash");