Crashlytics / Fabric未报告Android上的崩溃

时间:2015-09-25 17:59:30

标签: android crashlytics twitter-fabric

我在使用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的插件。

6 个答案:

答案 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");