我在我的应用程序中使用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'
ext.enableCrashlytics
也能正常工作。在设置说明中没有提到它。你认为它为什么是必需的? - Bob Snyder