最近、Fabric.ioからFirebaseCrashlyticsへの移行を試みました。ドキュメントに記載されている次の手順 https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=Android
setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
でビルドされた場合にのみコレクションが有効になりましたその後、通常よりも時間がかかっていることに気付いたときにテストスイートを実行しようとしましたが、最終的にはOutOfMemoryErrorを報告する多くのテストで失敗しました。この一連のテストは、Fabricの依存関係で問題なく実行されます。誰かが同様の問題を抱えていたり、それに遭遇したりしていますか?
はい、更新しました。最近公開された最新バージョンにライブラリを更新しました。問題はソートされているようです
com.google.firebase:firebase-crashlytics-gradle:2.2.0
2.1.0の代わりcom.google.firebase:firebase-crashlytics:17.1.0
17.0.0の代わり元の記事が掲載された
ドキュメントによると、Fabric Crashlytics SDKはContentProviderを使用して自身を初期化しています。そのため、アプリケーションコードでsetCrashlyticsCollectionEnabled関数を呼び出すのは遅すぎます。
新しいSDKでは、FabricのAPIキーは使用されなくなりました。代わりに、Crashlyticsはアプリのgoogle-services.jsonファイルを使用してアプリをFirebaseプロジェクトに関連付け、過去のクラッシュデータを保持するようになりました。 AndroidManifest.xmlファイルでio.fabric.ApiKeyが宣言されている場合は、それを削除します。
自動クラッシュレポートを無効にして、一部のユーザーに対してのみ有効にする場合は、AndroidManifest.xmlファイルでAndroid meta-dataタグを使用します。次に、新しいsetCrashlyticsCollectionEnabledを使用してクラッシュレポートを有効にできます。インスタンスメソッド。
したがって、マニフェストでデータ収集を無効にする必要があります。そのためには、firebase_crashlytics_collection_enabledメタタグをマニフェストに追加する必要があります。
<meta-data
Android:name="firebase_crashlytics_collection_enabled"
Android:value="false" />
テストビルドではCrashlyticsを無効にしたいだけなので、マニフェストファイルにビルド変数を注入することをお勧めします。下のリンクを参照してください。 https://developer.Android.com/studio/build/manifest-build-variables.html