有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
有没有什么简单的方法可以在开发过程中关闭Crashlytics Android SDK ?
我不希望每次我做一些愚蠢的事情时它都会崩溃
另一方面,我不想注释掉Crashlytics.start(),可能会忘记取消注释并提交
当前回答
你可以使用一个专用的清单文件调试模式(适用于我与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已经初始化。
其他回答
根据谷歌使用此代码禁用Crashlytics,它也将改善构建过程。
reference-https: / / developer.android.com/studio/build/optimize-your-build
有两个选项可以禁用以下版本的Firebase Crashlytics:
添加元标签的应用程序的清单
<元数据android:name="firebase_crashlytics_collection_enabled" android:value="false" />
OR
直接在应用程序中配置(请记住,当设置为false时,新值直到下次运行应用程序才适用)
FirebaseCrashlytics.getInstance () .setCrashlyticsCollectionEnabled(真正的)
注意,你也可以在调试构建中禁用烦人的符号上传:
def crashlyticsUploadStoredDeobsDebug = "crashlyticsUploadStoredDeobsDebug"
def crashlyticsUploadDeobsDebug = "crashlyticsUploadDeobsDebug"
tasks.whenTaskAdded { task ->
if (crashlyticsUploadStoredDeobsDebug.equals(task.name) ||
crashlyticsUploadDeobsDebug.equals(task.name)) {
println "Disabling $task.name."
task.enabled = false
}
}
把它放到构建中。你的应用模块的Gradle。
你可以使用一个专用的清单文件调试模式(适用于我与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已经初始化。
如果你使用Gradle,只需添加这个到一个风味:
ext.enableCrashlytics = false