繁体   English   中英

Gradle 同步失败:com.google.android.gms:play-services-basement 和 com.google.firebase:firebase-common

[英]Gradle sync fails: com.google.android.gms:play-services-basement and com.google.firebase:firebase-common

我正在尝试将 firebase 包含到我的 android 项目中,如官方 firebase 文档中所述。 该应用程序非常基础,并使用 Google 的视觉 API。

我得到的错误:

Gradle 同步失败:无法通知依赖项解析侦听器。 库 com.google.android.gms:play-services-basement 正在 [[11.0.4,11.0.4], [15.0.1,15.0.1]] 处被其他各种库请求,但解析为 15.0。 1. 禁用插件并使用 ./gradlew :app:dependencies 检查您的依赖关系树。

我已经从网站上发布的类似问题中尝试了一些对我不起作用的解决方案。 更重要的是,我想了解根本原因,而不是盲目地修补版本。

以下是我的gradle文件:

模块级

apply plugin: 'com.android.application'
/* ... */    
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:2.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.android.gms:play-services:11.0.4'
    implementation 'com.google.firebase:firebase-core:16.0.1'
}

apply plugin: 'com.google.gms.google-services'

项目层面

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

运行./gradlew app:dependencies给出:

无法通知依赖项解析侦听器。

库 com.google.android.gms:play-services-basement 正在 [[11.0.4,11.0.4], [15.0.1,15.0.1]] 处被其他各种库请求,但解析为 15.0。 1. 禁用插件并使用 ./gradlew :app:dependencies 检查您的依赖关系树。

库 com.google.firebase:firebase-common 正在 [[11.0.4,11.0.4]] 处被其他各种库请求,但解析为 16.0.0。 禁用插件并使用 ./gradlew :app:dependencies 检查您的依赖关系树。

更新以下内容:

        classpath 'com.google.gms:google-services:4.0.1'

对此:

        classpath 'com.google.gms:google-services:4.1.0'

也如文档中所述:

注意:不要使用组合的play-services目标。 它引入了数十个库,使您的应用程序膨胀。 相反,仅指定您的应用使用的特定 Google Play 服务 API。

因此,删除此:

 implementation 'com.google.android.gms:play-services:11.0.4'

并添加具有更新版本的特定 google play 服务 api,示例implementation 'com.google.android.gms:play-services-auth:16.0.1'

16.0.4 -core 更新到版本16.0.4

在这里查看更多信息:

https://developers.google.com/android/guides/setup


当您收到此错误时:

库 com.google.android.gms:play-services-basement 正在 [[15.0.1,15.0.1]] 处被其他各种库请求,但解析为 16.0.1。

这意味着您在 gradle 中使用的直接依赖项(在 google maven 存储库内)正在使用传递依赖项com.google.android.gms:play-services-basement

在这种情况下, firebase-core:16.0.1使用play-services-basement:15.0.1而最新版本的play-services-basement16.0.1 ,因此您会收到此错误。

您还可以检查在2018年10月2日,他们做了以下内容:

对其他使用的一些核心库(play-services-auth、play-services-base、play-services-basement、play-services-flags、play-services-stats、play-services-tasks)进行了小的内部功能更新Google Play 服务库。

他们还发布了com.google.android.gms:play-services-basement:16.0.1com.google.firebase:firebase-core:16.0.4

也在这里检查我的答案:

安卓 | 无法为 15.0.1 版添加所有 Google 库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM