android - Android:为调试构建禁用 crashlytics
问题描述
我只是想禁用 crashlytics 以进行调试构建。
所以我按照他们官方文档中的说明进行操作。 https://docs.fabric.io/android/crashlytics/build-tools.html
根据文件,我必须做以下事情,所以我做到了。首先我在下面添加,
android {
buildTypes {
debug {
// Disable fabric build ID generation for debug builds
ext.enableCrashlytics = false
...
我在下面添加到我的应用程序类中。
// Set up Crashlytics, disabled for debug builds
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);
但我仍然得到这个错误。
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
有什么我想念的吗?
我检查了我尝试构建的构建类型,并且在没有此配置之前它运行良好。
我的 crashlytics 版本是 2.9.4。
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
谢谢!
解决方案
要在您的应用程序启动之前禁用 Firebase,您需要将以下代码添加到您的 AndroidManifest.xml:
<application
... >
...
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsCollectionEnabled}" />
</application>
表达式 ${crashlyticsCollectionEnabled} 称为清单占位符,其值来自主模块的构建。毕业文件:
安卓 {
...
buildTypes {
debug {
manifestPlaceholders = [crashlyticsCollectionEnabled:"false"]
...
}
release {
manifestPlaceholders = [crashlyticsCollectionEnabled:"true"]
...
}
}
}
推荐阅读
- swift - 使用它的detailTextLabel 自动调整tableview 单元格的大小?
- javascript - Javascript 的脚本没有运行两次
- shell - 通过路由进行多页导航
- ajax - 即使 url、路由器和控制器指向同一个地方,Laravel 和 Ajax 也会根据请求返回 404
- javascript - 使用 Javascript 动态更改 ifarme 中的过滤器
- django - 图像未在呈现的 pdf 中显示
- javascript - 如何在后台预加载数据(Angular Web App)
- redis - redisModule 可以在集群模式下访问不同节点上的密钥
- reactjs - minDate props 覆盖 Material-ui Datepicker 的 null 状态值
- javascript - async/await forEach 和 Promise.all + map 有什么区别