【发布时间】:2018-04-03 17:19:54
【问题描述】:
我在我的应用程序中使用 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)
即使我从Crashlytic get started 模拟崩溃,应用程序也永远不会崩溃
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'
【问题讨论】:
-
您的互联网连接了吗?好像是超时了
-
是连接到网络。我在我的真实设备上运行该应用程序并且它已连接。
-
你知道吗,也许尝试正常崩溃而不是模拟崩溃...尝试抛出异常。也许 API 调用有问题。还要确保您完全按照他们要求的步骤设置了 crashlytics
-
您能否发布您的 gradle 文件(应用程序和项目级别)以及您初始化 crashalytics 的位置?
-
Crashlytics 在没有
ext.enableCrashlytics的情况下为我工作。它不在setup instructions 中。为什么你认为它是必要的?
标签: android firebase crashlytics