簡體   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