有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
当前回答
有两个选项可以禁用以下版本的Firebase Crashlytics:
添加元标签的应用程序的清单
<元数据android:name="firebase_crashlytics_collection_enabled" android:value="false" />
OR
直接在应用程序中配置(请记住,当设置为false时,新值直到下次运行应用程序才适用)
FirebaseCrashlytics.getInstance () .setCrashlyticsCollectionEnabled(真正的)
其他回答
如果你想捕获所有的崩溃(用于调试和发布版本),但想在Crashlytics仪表板中分离它们,你可以添加这行代码到build.gradle:
debug {
versionNameSuffix "-DEBUG"
}
例如,如果你的应用程序的versionName是1.0.0,你的发布版本将被标记为1.0.0,而调试版本将被标记为1.0.0- debug
最新的最简单的版本时,使用Gradle构建:
if (!BuildConfig.DEBUG) {
Fabric.with(this, new Crashlytics());
}
它使用来自Fabric的Crashlytics的内置语法,并自动与Gradle构建一起工作。
有两个选项可以禁用以下版本的Firebase Crashlytics:
添加元标签的应用程序的清单
<元数据android:name="firebase_crashlytics_collection_enabled" android:value="false" />
OR
直接在应用程序中配置(请记住,当设置为false时,新值直到下次运行应用程序才适用)
FirebaseCrashlytics.getInstance () .setCrashlyticsCollectionEnabled(真正的)
2022答案使用FirebaseCrashlytics。
有两种情况:
如果你想禁用Crashlytics数据收集的所有应用程序运行(如禁用Crashlytics在调试模式),那么你需要禁用它的清单文件通过设置标志firebase_crashlytics_collection_enabled为false
构建。gradle(应用):
// Next two flags to enable/disable Crashlytics
def enableCrashlyticsInDebugBuild = false
def enableCrashlyticsInReleaseBuild = true
android {
buildTypes {
release {
manifestPlaceholders = [crashlyticsEnabled:"${enableCrashlyticsInReleaseBuild}"]
}
debug {
manifestPlaceholders = [crashlyticsEnabled:"${enableCrashlyticsInDebugBuild}"]
}
}
}
然后在清单文件中将其添加到application标签下。
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsEnabled}" />
如果你想禁用Crashlytics的一些用户,当他们选择退出数据收集。
要处理这个问题,您应该使用setCrashlyticsCollectionEnabled方法。
Kotlin API (Java API类似):
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false)
当设置为false时,新值直到下次运行应用程序才适用。
引用:
https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting https://firebase.google.com/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics#setcrashlyticscollectionenabled
你可以使用一个专用的清单文件调试模式(适用于我与Crashlytics 2.9.7):
创建文件app/src/debug/AndroidManifest.xml并添加以下内容:
<application>
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false"/>
</application>
注意,这个元数据元素必须放在debug/AndroidManifest.xml中,而不是放在常规的AndroidManifest.xml中
使用CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()的解决方案不适合我,我发现crashlytics是由CrashlyticsInitProvider在application . oncreate()被调用或任何活动启动之前初始化的,这意味着在应用程序或活动中手动初始化fabric没有效果,因为fabric已经初始化。