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

时间:2018-11-10 22:44:55

标签: android firebase firebase-realtime-database android-gradle

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

我遇到的错误:

  

Gradle同步失败:无法通知依赖项解析侦听器。                       各种其他库都在[[11.0.4,11.0.4],[15.0.1,15.0.1]]请求库com.google.android.gms:play-services-basement,但解析为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给出:

  

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

     
    

其他[]。[11.0.4,11.0.4],[15.0.1,15.0.1]]的其他图书馆都在请求com.google.android.gms:play-services-basement库,但该库可以解析至15.0.1。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。

         

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

  

1 个答案:

答案 0 :(得分:3)

更新以下内容:

        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'

还将firebase-core更新为版本16.0.4

在此处查看更多信息:

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


出现此错误时:

  

各种其他库都在[[15.0.1,15.0.1]]请求库com.google.android.gms:play-services-basement,但解析为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-basement的最新版本是16.0.1,因此会出现此错误。

您还可以在2018年10月2日检查this,他们是否进行了以下操作:

  

对一些核心库(播放服务授权,播放服务基础,播放服务基础,播放服务标志,播放服务状态,播放服务任务)进行了较小的内部功能更新。由其他Google Play服务库使用。

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

也可以在这里查看我的答案:

Android | Cannot add all Google libraries for version 15.0.1