Firebase Crashlyticsを新しいAndroidアプリ(単一モジュール、フレーバーなし)に追加しようとしています。CrashlyticsがIDEアシスタントプラグインにないため、 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 consoleでクラッシュが発生します)が、今は
問題#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; DR-Fabric APIキーがマニフェストに存在する場合、gradleは単体テストの実行に失敗します。存在しない場合、アプリは実行時にクラッシュします。私は何か間違っているのではないかと思いますが、正確には何がわかりませんか:(
まあ私の場合:
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta01'
プロジェクトレベルで欠落していたbuild.gradle
および
apply plugin: 'com.google.firebase.crashlytics'
アプリレベルで欠落していたbuild.gradle
ファイル