Firebase Crashlytics未发送崩溃报告

7

我在我的应用程序中使用Firebase。我添加了Crashlytic到我的应用程序中。当我运行时,我模拟了一个异常,但是Crashlytic从未在我的Firebase控制台中生成和发送报告。以下是我收到的异常。

04-03 17:10:35.731 12442-12477/com.package.app E/CrashlyticsCore: Tried to write a fatal exception while no session was open.
04-03 17:10:39.733 12442-12442/com.package.app E/CrashlyticsCore: Failed to execute task.
    java.util.concurrent.TimeoutException
        at java.util.concurrent.FutureTask.get(FutureTask.java:177)
        at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:41)
        at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:320)
        at com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.java:300)
        at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:42)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)

即使我按照Crashlytics入门指南模拟崩溃,应用程序也从未崩溃。

Button crashButton = new Button(this);
crashButton.setText("Crash!");
crashButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Crashlytics.getInstance().crash(); // Force a crash
    }
});
addContentView(crashButton,
               new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
               ViewGroup.LayoutParams.WRAP_CONTENT));

当我模拟自己的应用程序崩溃时,报告从未生成和发送。

Gradle脚本项目级别

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
        maven {url 'https://maven.fabric.io/public'}

        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.1.2'
        classpath 'io.fabric.tools:gradle:1.25.1'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
        maven { url "https://jitpack.io" }
        google()
    }
}

Gradle构建脚本应用级别
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "xxxxxxxxxxxxxxxxxxxxxxxx"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 3
        versionName "1.0.2"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            ext.enableCrashlytics = true
        }
    }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:support-annotations:27.0.2'
    //..........some dependencies
    implementation 'com.android.support:design:27.0.2'
    //implementation 'com.android.support:animated-vector-drawable:27.0.2'
    implementation 'com.android.support:recyclerview-v7:27.0.2'
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support:support-v4:27.0.2'
    //implementation 'com.squareup.okhttp3:okhttp:1.5.4'
    implementation 'com.firebaseui:firebase-ui-database:3.2.2'
    implementation 'com.firebaseui:firebase-ui-storage:3.2.2'
    //implementation 'com.google.firebase:firebase-core:12.0.0'
    //................. some dependencies
    //Crashlytics sdk dependency
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1'
}

apply plugin: 'com.google.gms.google-services'

是的,连接到网络了。我在我的真实设备上运行应用并已连接。 - Jean-Pascal MEWENEMESSE
你正在使用哪个版本?发布版还是调试版? - Kushan
我正在使用调试版本。我需要在清单文件中做一些更改吗?我没有在我的清单文件中进行更改。请给予建议。 - Jean-Pascal MEWENEMESSE
1
Crashlytics对我来说没有ext.enableCrashlytics也能正常工作。在设置说明中没有提到它。你认为它为什么是必需的? - Bob Snyder
我在以下 StackOverlow 线程下添加了一个答案,提供了可能的解决方案:https://dev59.com/NVwY5IYBdhLWcg3wyqeH#57795922 - Zsolt N. Szabo
显示剩余8条评论
1个回答

2

我希望您在 Fabric 仪表板设置中启用通知,以获取由您的代码生成的测试崩溃信息。

启用后,您将收到崩溃邮件通知。


3
使用 Firebase 后,我认为我们不需要再去处理 Fabric 网站的问题。我没有在 Fabric 网站上拥有账号。 - Jean-Pascal MEWENEMESSE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接