添加firebase后,所有com.android.support库必须使用完全相同的版本规范。

7 浏览
0 Comments

添加firebase后,所有com.android.support库必须使用完全相同的版本规范。

我的Android Studio显示了这个错误。

所有的com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。发现版本27.1.1、26.1.0。例如,com.android.support:animated-vector-drawable:27.1.1和com.android.support:support-media-compat:26.1.0。有一些库、工具和库的组合是不兼容的,或者可能导致错误。一个这样的不兼容是使用一个不是最新版本的Android支持库进行编译(特别是低于您的targetSdkVersion的版本)。

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:15.0.0'

0
0 Comments

问题出现的原因是在添加Firebase后,所有的com.android.support库必须使用完全相同的版本。解决方法是通过覆盖支持库来解决该问题。可以通过添加错误中的依赖项来覆盖支持库。如果直接使用最新版本的库,则会覆盖Firebase的依赖版本。这只适用于Firebase,尚未测试其他库。这可能还会导致:app:transformDexArchiveWithExternalLibsDexMergerForDebug运行时异常。因此最好将其排除,然后作为一种安全措施添加。如果导致上述异常,则需要按照这个答案中指定的方式进行操作。新的google-services插件在使用多模块、数据绑定等时存在一些问题。

0
0 Comments

最近在使用Firebase时可能遇到以下问题:com.google.firebase:firebase-core:15.0.0依赖于较旧的支持库版本(26.1.0)。然而,已经发布了15.0.2版本,所以你可以尝试以下解决方法:

1. 使用15.0.2版本的Firebase Core。可能该版本基于最新的支持库版本。

2. 忽略此警告消息,因为它只是一个警告而不是错误,你的应用程序可能会正常工作。(不建议,但可能有效)

3. 将你使用的支持库版本降级到26.1.0,以确保它们是相同的版本。至少在Google发布基于最新支持库版本的Firebase之前请使用此方法。(如果方法1无效,推荐使用此方法)

希望能对你有所帮助!

0
0 Comments

当你运行./gradlew :app:dependencies命令时,你可以了解到在Gradle中包含的库的传递依赖关系。通过这个层次结构视图,你可以找出哪些库依赖于旧版本,并在gradle中exclude它们,如下所示:

exclude group:'com.android.support'//as an example support library is excluded

就这个问题而言,可以像这样做:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation ('com.google.firebase:firebase-core:15.0.2'){
    exclude group:'com.android.support'
}

这里通过排除支持库来解决冲突,因为Firebase核心库依赖于旧版本的支持库。

注意:

如果你的依赖项不包括你排除的库,但是你排除的依赖项需要它,你可以在gradle中添加与你所使用的兼容版本的被排除库。

0