我目前正在将应用程序从Fabric迁移到Firebase Crashlytics,在按照官方文档中所述更新所有不同的库后,我收到一条日志消息,指出Crashlytic初始化已被跳过:
09-12 10:13:40.120 19176-19176/com.random.migratedApp I/CrashlyticsInitProvider: CrashlyticsInitProvider skipping initialization
并且该应用无法连接到 Firebase 控制台。
在与代码斗争了几个小时后,我决定从头开始制作一个快速应用程序,看看我的系统或库是否存在问题,但一切都运行良好,获得了正确的初始化并能够在 Firebase 控制台中看到崩溃。
09-12 10:11:31.852 18414-18414/com.test.appFromScratch I/CrashlyticsCore: Initializing Crashlytics Core 2.7.0.33
09-12 10:11:31.897 18414-18414/com.test.appFromScratch I/CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful
我想知道我是否可能与可能阻止 Crashlytics 成功初始化的依赖项之一不兼容,但我无法弄清楚这里可能有什么问题。在这里,您可以看到我的应用程序依赖项列表:
ext {
playServicesLibrary = '17.0.0'
glideLibrary = '4.8.0'
androidXDependencies = [
androidXAnnotation: "androidx.annotation:annotation:1.0.0",
constraintLayout : 'androidx.constraintlayout:constraintlayout:1.1.2',
vectorDrawable : "androidx.vectordrawable:vectordrawable:1.0.0",
recyclerView : "androidx.recyclerview:recyclerview:1.0.0",
roomRuntime : 'androidx.room:room-runtime:2.1.0-rc01',
androidXV13 : "androidx.legacy:legacy-support-v13:1.0.0",
preference : "androidx.preference:preference:1.1.0-alpha04",
customtabs : "androidx.browser:browser:1.0.0",
appCompat : "androidx.appcompat:appcompat:1.0.0",
cardView : "androidx.cardview:cardview:1.0.0",
design : "com.google.android.material:material:1.0.0-rc01"
]
volley = [
volleyLib : "com.android.volley:volley:1.0.0"
]
googleDependencies = [
firebaseJobDispatcher : "com.firebase:firebase-jobdispatcher:0.8.5",
firebaseAnalytics : "com.google.firebase:firebase-analytics:17.2.0",
firebaseMessaging : "com.google.firebase:firebase-messaging:19.0.0",
googleMapsUtils : "com.google.maps.android:android-maps-utils:0.4.4",
googleAnalytics : "com.google.android.gms:play-services-analytics:${playServicesLibrary}",
googleLocation : "com.google.android.gms:play-services-location:${playServicesLibrary}",
firebaseCore : "com.google.firebase:firebase-core:17.2.0",
crashlytics : "com.crashlytics.sdk.android:crashlytics:2.10.1",
googleMaps : "com.google.android.gms:play-services-maps:${playServicesLibrary}",
billing : "com.android.billingclient:billing:1.1"
]
otherDependencies = [
glideAnnotations : "com.github.bumptech.glide:annotations:${glideLibrary}",
bottomNavigation : "com.aurelhubert:ahbottomnavigation:2.1.0",
scaleImageView : "com.davemorrissey.labs:subsampling-scale-image-view:3.6.0",
debugDatabase : "com.amitshekhar.android:debug-db:1.0.6",
taptargetview : "com.getkeepsafe.taptargetview:taptargetview:1.12.0",
actionButtons : "com.nightonke:boommenu:2.1.1",
threetenabp : "com.jakewharton.threetenabp:threetenabp:1.1.0",
glideOkHttp : "com.github.bumptech.glide:okhttp3-integration:${glideLibrary}",
cookieBar : "org.aviran.cookiebar2:cookiebar2:1.1.2",
eventBus : "org.greenrobot:eventbus:3.1.1",
facebook : "com.facebook.android:facebook-android-sdk:5.0.1",
multidex : 'androidx.multidex:multidex:2.0.0',
apache : "org.apache.commons:commons-lang3:3.7",
semver : "com.vdurmont:semver4j:2.0.1",
zXing : "me.dm7.barcodescanner:zxing:1.9.8",
glide : "com.github.bumptech.glide:glide:${glideLibrary}",
io : "commons-io:commons-io:2.6"
]
newLogin = [
circleimageview : "de.hdodenhof:circleimageview:2.1.0",
romandanylyk : "com.romandanylyk:pageindicatorview:0.2.0",
interceptor : "com.squareup.okhttp3:logging-interceptor:3.6.0",
calligraphy : "uk.co.chrisjenx:calligraphy:2.2.0",
retrofit : "com.squareup.retrofit2:converter-gson:2.3.0",
intuit : "com.intuit.sdp:sdp-android:1.0.4",
okhttp : "com.squareup.okhttp3:okhttp:3.6.0",
]
allDependencies = [
full:[
androidXDependencies.androidXAnnotation,
androidXDependencies.constraintLayout,
androidXDependencies.vectorDrawable,
androidXDependencies.recyclerView,
androidXDependencies.roomRuntime,
androidXDependencies.androidXV13,
androidXDependencies.preference,
androidXDependencies.customtabs,
androidXDependencies.appCompat,
androidXDependencies.cardView,
androidXDependencies.design,
volley.volleyLib,
googleDependencies.firebaseJobDispatcher,
googleDependencies.firebaseMessaging,
googleDependencies.googleAnalytics,
googleDependencies.googleMapsUtils,
googleDependencies.googleLocation,
googleDependencies.firebaseCore,
googleDependencies.firebaseAnalytics,
googleDependencies.googleMaps,
googleDependencies.billing,
otherDependencies.glideAnnotations,
otherDependencies.bottomNavigation,
otherDependencies.scaleImageView,
otherDependencies.actionButtons,
otherDependencies.taptargetview,
otherDependencies.glideOkHttp,
otherDependencies.threetenabp,
otherDependencies.cookieBar,
otherDependencies.facebook,
otherDependencies.eventBus,
otherDependencies.multidex,
otherDependencies.semver,
otherDependencies.zXing,
otherDependencies.apache,
otherDependencies.glide,
otherDependencies.io,
newLogin.circleimageview,
newLogin.calligraphy,
newLogin.interceptor,
newLogin.retrofit,
newLogin.romandanylyk,
newLogin.intuit,
newLogin.okhttp,
googleDependencies.crashlytics
],
debugDependencies:[
otherDependencies.debugDatabase
]
]
}
干杯!
经过一些试验和错误,我发现我正在使用的一些库可能依赖于 Crashlytics。
添加这个:
<meta-data
tools:node="remove"
android:name="io.fabric.ApiKey"/>
在 AndroidManifest.xml 文件中的 <<strong>application> 标记中。
干杯!
我确实删除了
<meta-data
tools:node="remove"
android:name="previous_api_key"/>
从清单和问题修复,那是旧版本的崩溃。
Fabric/Firebaser 在这里 -
如果您要将应用从 Fabric 迁移到 Firebase,则无需更改代码 - 您只需按照点击型迁移流程操作,您的应用及其 Crashlytics 数据就会显示在 Firebase 控制台中。
如果您处于混合集成的状态,这意味着您有一个 Fabric 应用,并且在遵循 Firebase Crashlytics 文档的同时开始更改依赖项,您应该
- 删除所有对 Fabric 的引用(API 密钥、build.gradle 依赖项、初始化代码(,并使用 Firebase Crashlytics 加入新应用,或者
- 移除您所做的任何 Firebase 更改以恢复到旧的 Fabric 设置,然后按照上面链接的迁移流程进行操作。
首先,您需要检查双方是否有互联网可用。(康索尔和手机( 然后检查任何已经在 Gradle 文件中插件或实现的 Crashlytics(如果可用(,然后删除或删除 它首先在那之后再试一次它会工作