簡體   English   中英

從 Fabric 遷移到 FirebaseCrashlytics 后測試失敗

[英]After migration from Fabric to FirebaseCrashlytics tests failing

最近我們嘗試從 Fabric.io 遷移到 FirebaseCrashlytics。 遵循文檔https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android中所述的步驟

  1. 更新了 google-service.json 文件
  2. 用 Firebase Crashlytics 替換了 fabric.io 依賴項
  3. 僅當使用setCrashlyticsCollectionEnabled(.BuildConfig.DEBUG)構建 prod 時才更新代碼並啟用集合
  4. 更新了 proguard 規則

之后,我們嘗試運行我們的測試套件,因為我們注意到它花費的時間比平時長得多,最終它失敗了,許多測試報告了 OutOfMemoryError。 這組測試在 Fabric 依賴項下運行得很好。 有人遇到過或遇到過類似的問題嗎?

文檔說 Fabric Crashlytics SDK 使用 ContentProvider 進行自我初始化。 因此,在您的應用程序代碼中調用 setCrashlyticsCollectionEnabled function 為時已晚。

新的 SDK 不再使用 Fabric 的 API 密鑰。 相反,Crashlytics 現在使用您應用的 google-services.json 文件將您的應用與您的 Firebase 項目關聯並保留您的歷史崩潰數據。 如果您在 AndroidManifest.xml 文件中聲明了 io.fabric.ApiKey,請將其刪除。

如果您想禁用自動崩潰報告並僅為 select 用戶啟用它,請在您的 AndroidManifest.xml 文件中使用 Android 元數據標簽。 然后,您可以使用新的 setCrashlyticsCollectionEnabled 實例方法啟用崩潰報告。

https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android#firebaseno_longer_works_with_the_fabric_sdk

因此,您需要在清單中禁用數據收集。 為此,您需要將 firebase_crashlytics_collection_enabled 元標記添加到清單中。

<meta-data
    android:name="firebase_crashlytics_collection_enabled"
    android:value="false" />

https://github.com/firebase/firebase-android-sdk/blob/5440af41f0d15ff1358038dc31fcd1d4eac0a89c/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/java/common/DataCollectionArbit

您可能希望將構建變量注入清單文件,因為您只想在測試構建中禁用 Crashlytics。 請參閱下面的鏈接。 https://developer.android.com/studio/build/manifest-build-variables.html

好的,我確實有這方面的更新。 我們剛剛將庫更新到最近發布的最新版本,並且問題看起來已經排序

  • com.google.firebase:firebase-crashlytics-gradle:2.2.0而不是 2.1.0
  • com.google.firebase:firebase-crashlytics:17.1.0而不是 17.0.0

與哪篇原始文章一起發表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM