有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
当前回答
步骤1:在build.grade中
buildTypes {
debug {
debuggable true
manifestPlaceholders = [enableCrashlytic:false]
}
release {
debuggable false
manifestPlaceholders = [enableCrashlytic:true]
}
}
步骤2:在manifest中
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${enableCrashlytic}" />
步骤3:在应用程序或第一个活动中
private void setupCrashReport() {
if (BuildConfig.DEBUG) return;
Fabric.with(this, new Crashlytics());
}
我不确定第3步是否必要,但要确保发布版本应该不会崩溃。来源:https://firebase.google.com/docs/crashlytics/customize-crash-reports enable_opt-in_reporting
其他回答
如果你想捕获所有的崩溃(用于调试和发布版本),但想在Crashlytics仪表板中分离它们,你可以添加这行代码到build.gradle:
debug {
versionNameSuffix "-DEBUG"
}
例如,如果你的应用程序的versionName是1.0.0,你的发布版本将被标记为1.0.0,而调试版本将被标记为1.0.0- debug
这里是Crashlytics的Marc。这里有几个方法来禁用Crashlytics,而你正在做你的调试构建!
使用不同的android:versionString进行调试和发布构建,然后从Crashlytics web仪表板禁用调试版本的崩溃报告。 将对Crashlytics.start()的调用包装在检查调试标志的if语句中。您可以使用自定义标志或类似于这里提出的方法:如何检查APK是否有签名或“调试构建”?
所选的答案不再正确。谷歌改变了Crashlytics的整合。我目前的版本是2.9.1,我唯一要做的是,添加实现'com.crashlytics.sdk.android:crashlytics:2.9.1'到我的Gradle文件。没有更多的事情需要,很好,但这意味着Crashlytics一直在运行。
解决方案1
只在发布版本编译Crashlytics:
dependencies {
...
releaseImplementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
}
解决方案2
如果你想额外配置Crashlytics,那么解决方案1是行不通的,因为在调试版本中找不到Crashlytics类。因此,将Gradle实现更改为:
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1' // update version
然后转到你的Manifest,在应用程序标签中添加以下元数据标签:
<application
android:name="...>
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
...
</application>
添加到您的启动活动(只需要一次,而不是每个活动)
if (!BuildConfig.DEBUG) { // only enable bug tracking in release version
Fabric.with(this, new Crashlytics());
}
这只会在发布版本中启用Crashlytics。注意,还要检查BuildConfig。调试当你配置Crashlytics,例如:
if (!BuildConfig.DEBUG) {
Crashlytics.setUserIdentifier("HASH_ID");
}
看看最新的医生。 https://docs.fabric.io/android/crashlytics/build-tools.html gradle-advanced-setup。
除了在构建中添加ext.enableCrashlytics = false。你需要做的成绩,
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);
在MyApplication#onCreate()中使用
if (!BuildConfig.DEBUG) Crashlytics.start(this);
编辑 如果您升级到Fabric,请使用这个答案。