【问题标题】:In project 'app' a resolved Google Play services library dependency depends on another at an exact version在项目“应用程序”中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本
【发布时间】:2019-05-31 23:33:47
【问题描述】:

尝试使用 FireStore 和 Google 身份验证创建一个简单的应用程序。 gradle 有问题:

在项目“app”中,解决了 Google Play 服务库依赖项 依赖于另一个精确版本(例如“[15.0.1]”,但不是 正在解决该版本。图书馆展示的行为将 不为人知。

依赖失败:com.google.android.gms:play-services-flags:15.0.1 -> com.google.android.gms:play-services-basement@[ 15.0.1],但 play-services-basement 版本是 16.0.1。

以下依赖项是直接或直接的项目依赖项 具有传递依赖关系,导致艺术 ifact 与 问题。 -- 项目 'app' 依赖于 com.google.firebase:firebase-firestore@17.1.5 -- 项目 'app' 依赖于 com.firebaseui:firebase-ui-auth@4.2.0

对于扩展调试信息,从命令行执行 Gradle ./gradlew --info :app:assembleDebug 查看依赖路径 神器。此错误消息来自 google-services Gradle 插件,在 https:// 报告问题 github.com/google/play-services-plugins 并通过添加禁用 “googleServices { disableVersionCheck = false }”到您的 b uild.gradle 文件。

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 27
        defaultConfig {
            applicationId "myapp.com"
            minSdkVersion 19
            targetSdkVersion 27
            versionCode 11
            versionName "1.1"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        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-firestore:17.1.5'

        implementation 'com.firebaseui:firebase-ui-auth:4.2.0'

    }

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

项目等级:

buildscript {

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

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

    }
}

有人可以帮帮我吗?

【问题讨论】:

    标签: android android-gradle-plugin firebaseui


    【解决方案1】:

    问题是它缺少依赖项。 添加 com.google.firebase:firebase-auth 解决了这个问题。

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        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-firestore:17.1.5'
    
    //    implementation'com.google.firebase:firebase-core:16.0.6'
    //    implementation'com.google.firebase:firebase-storage:16.0.5'
    
        implementation'com.google.firebase:firebase-auth:16.1.0' => add this line
        implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
    }
    

    【讨论】:

    • 你是怎么知道这件事的?
    • 使用最新版本的 'com.google.firebase:firebase-auth:17.0.0 避免运行时错误
    • 你是怎么想出来的?
    【解决方案2】:

    将我所有的 Google Play 服务库更新到所有模块中的最新版本为我解决了这个问题。我没有看到您有任何 Google Play 服务库,但我想把这个答案留给那些可能觉得这很有用的人。

    【讨论】:

      【解决方案3】:

      谢谢,但不幸的是,这并不完全适合我。我还必须将以下内容添加到我的 build.grade (Module:app)

      implementation 'com.google.android.gms:play-services-flags:16.0.1'
      implementation 'com.google.android.gms:play-services-basement:16.0.1'
      

      【讨论】:

        【解决方案4】:

        Google 服务 4.2.0 中的 known bug 可能会导致此问题。在项目的 build.gradle 中将您的 google-services 版本降级到 4.1.0 可能会解决此问题

        buildscript {
            dependencies {
                classpath 'com.google.gms:google-services:4.1.0' //decreased from 4.2.0
            }
        }
        

        【讨论】:

        • 我正在使用classpath 'com.google.gms:google-services:4.3.3',即使我遇到了错误。
        • 降级到 4.1.0,现在一切正常。
        • 我在添加条带 sdk 时遇到了这个问题。这种方法解决了这个问题。永远不要猜测是谷歌服务的问题。谢谢。
        【解决方案5】:

        将FCM添加到您的应用程序中添加了较低的依赖项然后我将依赖项更改为已解决此问题的最新版本。

        compile 'com.google.firebase:firebase-messaging:17.3.4'
        

        implementation 'com.google.firebase:firebase-messaging:20.0.0'
        

        【讨论】:

          【解决方案6】:

          我在我的项目中将最新版本的 firebase 消息传递添加到 build.gradle (Module: app) 并解决了问题

          implementation 'com.google.firebase:firebase-messaging:20.0.0'
          

          【讨论】:

          • 非常感谢!简单有效,节省了我很多时间!
          【解决方案7】:

          对我来说可行的解决方案是删除“firebase-auth”并添加“firebase-core”依赖项。但是经过几次项目重建后,我开始遇到另一个编译问题,因此我必须在“firebase-core”之外添加“firebase-auth”依赖项才能使其工作:

          implementation 'com.google.firebase:firebase-auth:19.0.0'
          implementation 'com.google.firebase:firebase-core:17.0.1'
          implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
          

          【讨论】:

            【解决方案8】:

            对于没有真正解决问题的个别解决方案,这里有很多答案。 以下是解决此问题的一般方法

            正如原始日志输出所示,使用以下命令在终端中运行构建很有用:

            ./gradlew --info assembleDebug

            这将为您提供冲突中涉及的所有依赖项的列表。它看起来与此类似(我删除了包名称以使其更具可读性):

            Dependency Resolution Help: Displaying all currently known paths to any version of the dependency: Artifact(groupId=com.google.firebase, artifactId=firebase-iid)
            
            -- task/module dep -> firebase-analytics@17.2.0
            ---- firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
            ------ play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
            
            -- task/module dep -> firebase-core@17.2.0
            ---- firebase-core:17.2.0 library depends -> firebase-analytics@17.2.0
            ------ firebase-analytics:17.2.0 library depends -> play-services-measurement-api@17.2.0
            -------- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
            
            -- task/module dep -> play-services-measurement-api@17.2.0
            ---- play-services-measurement-api:17.2.0 library depends -> firebase-iid@19.0.0
            
            -- task/module dep -> firebase-iid@19.0.0
            
            -- task/module dep -> firebase-messaging@17.1.0
            ---- firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]
            
            -- task/module dep -> com.pressenger:sdk@4.8.0
            ---- com.pressenger:sdk:4.8.0 library depends -> firebase-messaging@17.1.0
            ------ firebase-messaging:17.1.0 library depends -> firebase-iid@[16.2.0]
            

            从这个列表中你会知道两件事:

            1. 在哪里找到相互冲突的依赖关系
            2. 设置了哪些版本的冲突依赖项

            在我的例子中,有冲突的依赖是firebase-iid:要么是@19.0.0要么是@16.2.0

            要解决此问题,您必须在 build.gralde 中明确定义错误 firebase-iid 的顶级依赖项。

            所以在上面的日志中,您可以看到有 2 个过时版本的 firebase-iid@16.2.0 示例。一个来自-- task/module dep -> firebase-messaging@17.1.0,另一个来自第三方库(pressenger)。我们对第三方库没有影响,所以这里无所谓。 但是对于其他依赖项,我们必须使用正确的版本显式声明它:

            implementation 'com.google.firebase:firebase-messaging:20.0.0'

            现在构建再次运行。快乐的结局:)

            【讨论】:

            • 拯救我的一天。谢谢
            • 但是你是怎么从\@19.0.0和\@16.2.0跳转到\@20.0.0
            • @baconcheese 这与filebase-iid 的不同版本无关!相反,您必须显式设置所有使用过时版本的 firebase-iidtask/module dep 的依赖项
            • 这非常有帮助。非常感谢您解释您的答案
            • @live-love 你能把这个标记为正确答案吗?
            【解决方案9】:

            我的项目运行良好(没有构建问题)。突然,我得到了这个错误

            “解决了 Google Play 服务库依赖依赖于另一个确切版本的问题..”

            我发现是因为我是离线构建的。

            如果有人遇到同样的错误,检查您是否在离线构建

            【讨论】:

            • 我和你一样,项目正在运行,突然我遇到了这个错误,我的问题是我在 android studio 中设置的 http 代理,它已断开连接,我无法同步或构建我的项目。
            【解决方案10】:

            如果您的网络不安全并且您收到不受信任证书的提示,这对我来说是新的事情。

            如果您将接受或拒绝,它将给出此错误,直到您的网络不安全为止。

            您可以通过勾选Setting -> Gradle -> Offline Mode

            来离线工作

            【讨论】:

              【解决方案11】:

              有一个与 google-services 相关的错误最终在版本 4.3.3 中得到修复。

              所以您可以使用 4.3.3 或 latest version (check here)

              classpath 'com.google.gms:google-services:4.3.3' // or latest version
              

              或降级到 4.1.0

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

              【讨论】:

                【解决方案12】:

                其他答案都不适合我。我的用例是 React-Native 61+ 尝试设置 FCM 和 Analytics。对我有用的是在android/build.gradle 中使用最新的google-services

                dependencies {
                    classpath "com.android.tools.build:gradle:3.4.2"
                    classpath "com.google.gms:google-services:4.3.3" // Need the latest here
                }
                

                然后将 gradle 依赖项添加到 android/app/build.gradle 我正在使用的产品(在我的情况下为分析和云消息传递)所需的 here

                dependencies {
                    ...
                    // add the Firebase SDK for Google Analytics
                    implementation 'com.google.firebase:firebase-messaging:20.1.0'
                    implementation 'com.google.firebase:firebase-analytics:17.2.2'
                    ...
                }
                

                【讨论】:

                  【解决方案13】:

                  您的app/build.gradle 可能会在 Android Studio 的依赖项部分阻止这些柠檬色,如下图所示,

                  这些(柠檬色块)意味着它不是最新版本的依赖项。只需将鼠标放在每个块上,然后 IDE (Android Studio) 会告诉必须更改的数字。

                  【讨论】:

                    【解决方案14】:

                    如果您使用 song haesuk 答案,则需要为 build.gradle 项目(依赖项中的类路径)和 build.gradle 应用程序(实现)执行此操作。如果您更改导入到应用程序的任何库的构建,也请执行相同操作。

                    我使用 android studio 提供的建议,它改变了实现但没有改变依赖关系,因此在构建期间,两者之间存在冲突,它给了我同样的错误。

                    【讨论】:

                      【解决方案15】:

                      在我的项目的 build.gradle 中升级此库后问题已解决:

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

                      以及应用模块的 build.gradle 中的这些:

                      implementation 'com.google.firebase:firebase-core:17.3.0'
                      implementation 'com.google.firebase:firebase-messaging:20.1.5'
                      

                      之后,使用 Android Studio 的 Clean 菜单

                      【讨论】:

                        【解决方案16】:

                        当我不小心添加了两次不同版本的 com.google.firebase:firebase-ml-vision 时,我重现了这个问题。

                        【讨论】:

                          【解决方案17】:

                          在您的项目的 build.gradle 中添加以下行(见下图)

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

                          然后通过以下方式更新您的 Firebase 相关软件包:

                          文件 > 项目结构 > 依赖项 > 应用程序

                          将 Firebase 模块更新到最新版本(见下图)

                          就我而言,我正在使用:

                          implementation 'com.google.firebase:firebase-database:19.3.0'
                          implementation 'com.google.firebase:firebase-auth:19.3.1'
                          implementation 'com.google.firebase:firebase-messaging:20.1.7'
                          implementation 'com.google.firebase:firebase-core:17.4.0'
                          implementation 'com.google.firebase:firebase-storage:19.1.1'
                          
                          implementation 'com.google.firebase:firebase-analytics:17.2.2'
                          

                          别忘了补充:

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

                          在下面查看我的模块的 build.gradle 文件。

                          【讨论】:

                            【解决方案18】:

                            我通过简单地清除应用程序级依赖项块来解决它,只留下默认的 Android 依赖项,如下所示:

                            dependencies {
                              testImplementation 'junit:junit:4.12'
                              androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
                              androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
                              implementation 'androidx.multidex:multidex:2.0.0'
                            }
                            

                            【讨论】:

                              【解决方案19】:

                              我自己尝试了@live-love 的accepted answer 并同意这种方法。

                              不过,根据the latest Google Services library version 更正您的依赖关系可能更准确。

                              就我而言,它发生在我刚刚向应用添加/激活 Firebase 服务时。

                              您需要在项目和 Gradle 应用中关注最新版本。

                              我的app/build.gradle

                              dependencies {
                                  implementation fileTree(include: ['*.jar'], dir: 'libs')
                                  implementation 'com.android.support:appcompat-v7:27.1.1'
                                  implementation 'com.android.support.constraint:constraint-layout:1.1.3'
                                  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'
                                  //Android Support Design Library
                                  implementation 'com.android.support:design:27.1.1'
                                  //RecyclerView
                                  implementation 'com.android.support:recyclerview-v7:27.1.1'
                                  // Support multidex
                                  implementation 'com.android.support:multidex:1.0.3'
                                  // Firebase Core
                                  // implementation 'com.google.firebase:firebase-core:16.0.1'
                                  //Firebase Authentication
                                  implementation 'com.google.firebase:firebase-auth:19.3.1'
                                  // Firestore Firestore
                                  implementation 'com.google.firebase:firebase-firestore:21.4.3'
                                  implementation 'com.google.firebase:firebase-analytics:17.2.2'
                                  // glide
                                  implementation 'com.github.bumptech.glide:glide:4.8.0'
                                  annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
                              
                                  // Circle ImageView
                                  implementation 'de.hdodenhof:circleimageview:2.2.0'
                              }
                              apply plugin: 'com.google.gms.google-services'
                              

                              我的项目build.gradle

                              dependencies {
                                  classpath 'com.android.tools.build:gradle:3.5.3'
                                  classpath 'com.google.gms:google-services:4.3.3'
                              
                                  // NOTE: Do not place your application dependencies here; they belong
                                  // in the individual module build.gradle files
                              }
                              

                              别忘了再次同步 Gradle。

                              【讨论】:

                                【解决方案20】:

                                我正在使用 One Signal,但一次发现此错误。

                                原因是:

                                apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
                                apply plugin: 'com.android.application'
                                

                                apply plugin 放在'com.android.application' 之前的一个信号。 也许这对其他apply plugin 也有用。

                                【讨论】:

                                  【解决方案21】:
                                  This worked for me!
                                  
                                  dependencies {
                                      classpath "com.android.tools.build:gradle:3.4.2"
                                      classpath "com.google.gms:google-services:4.3.3" // Need the latest here
                                  }
                                  
                                  dependencies {
                                      ...
                                      // add the Firebase SDK for Google Analytics
                                      implementation 'com.google.firebase:firebase-messaging:20.1.0'
                                      implementation 'com.google.firebase:firebase-analytics:17.2.2'
                                      ...
                                  }
                                  

                                  【讨论】:

                                    【解决方案22】:

                                    ML Kit 库在最新版本中存在版本问题。

                                    Google Play 服务库依赖依赖于另一个确切的版本错误(由 google-services 插件抛出)

                                    这里是解决方案的链接。 https://firebase.google.com/support/release-notes/android#bom_v25-8-0

                                    【讨论】:

                                      猜你喜欢
                                      • 2019-07-03
                                      • 2020-04-17
                                      • 2020-08-24
                                      • 2023-04-02
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2019-09-09
                                      • 2019-07-16
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多