我正在尝试将Firebase Crashlytics添加到新的Android应用程序(单个模块,没有风味)。由于IDE助手插件中缺少Crashlytics,我正在使用https://firebase.google.com/docs/crashlytics/get-started的设置步骤:
Crashlytics仅针对发布版本进行了初始化,如下所示:
class MyApplication: Application() {
fun onCreate() {
super.onCreate()
Fabric.with(
this,
Crashlytics.Builder()
.core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build()
)
}
}
问题#1:应用程序在初始化过程中崩溃了
java.lang.RuntimeException: Unable to get provider com.crashlytics.android.CrashlyticsInitProvider: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
添加
<meta-data
android:name="io.fabric.ApiKey"
android:value="{blah-blah-key}" />
到AndroidManifest.xml修复了这个问题(我在firebase控制台看到了崩溃),但现在我得到了
问题#2:运行单元测试(gradle test
)失败了
> Task :app:fabricGenerateResourcesRelease FAILED
ERROR - Crashlytics Developer Tools error.
java.lang.IllegalArgumentException: Crashlytics found an invalid API key: blah-blah-key
TL;如果清单中存在Fabric api密钥,则DR-gradle无法运行单元测试,如果不存在则应用程序在运行时崩溃。我怀疑我做错了什么,但不确定到底是什么:(
我遇到了类似的问题。
java.lang.RuntimeException: Unable to get provider com.crashlytics.android.CrashlyticsInitProvider: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
at android.app.ActivityThread.installProvider(ActivityThread.java:6288)
在我的情况下,这是因为我忘了在apply plugin: 'io.fabric'
添加/app/build.gradle
我完全根据instructions做了一切,我的应用程序能够向Crashlytics发送报告。我没有添加io.fabric.ApiKey
。