在项目“应用”中,已解析的Google Play服务库依赖项依赖于另一个版本

liv*_*ove 16 android android-gradle-plugin firebaseui

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

在项目“应用”中,已解析的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。

以下依赖关系是直接或具有传递性依赖关系的项目依赖关系,会导致问题解决。-专案「app」取决于com.google.firebase:firebase-firestore@17.1.5-专案「app」取决于com.firebaseui:firebase-ui-auth@4.2.0

有关扩展的调试信息,请从命令行使用./gradlew --info:app:assembleDebug执行Gradle,以查看工件的dep endency路径。此错误消息来自google-services Gradle插件,在https://github.com/google/play-services-plugins上报告问题,并通过在您的build.gradle文件中添加“ googleServices {disableVersionCheck = false}”来禁用该错误消息。

    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
Run Code Online (Sandbox Code Playgroud)

项目gradle:

buildscript {

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

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

    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

mue*_*flo 40

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

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

./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]
Run Code Online (Sandbox Code Playgroud)

从这个列表中,您可以了解两件事:

  1. 在哪里找到冲突的依赖
  2. 设置了哪些版本的冲突依赖

在我的情况下,冲突的依赖关系是firebase-iid:它要么@19.0.0@16.2.0

要解决此问题,您必须firebase-iidbuild.gralde.

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

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

现在构建再次工作。美好结局 :)

  • 这非常有帮助。非常感谢您解释您的答案 (2认同)

liv*_*ove 15

问题是它缺少依赖项。添加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'
}
Run Code Online (Sandbox Code Playgroud)

  • 你是怎么知道这件事的? (4认同)

Cod*_*ody 12

Google Services 4.2.0 存在一个已知的错误,可能会导致此错误。在项目的build.gradle中将google-services版本降级为4.1.0可能会解决该问题

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.1.0' //decreased from 4.2.0
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用 `classpath 'com.google.gms:google-services:4.3.3'` 即使我收到错误。 (10认同)

Rya*_*lor 12

有一个与 google-services 相关的错误,最终在4.3.3.

所以你可以使用 4.3.3 或最新版本(检查这里)

classpath 'com.google.gms:google-services:4.3.3' // or latest version
Run Code Online (Sandbox Code Playgroud)

或降级到 4.1.0

classpath 'com.google.gms:google-services:4.1.0'
Run Code Online (Sandbox Code Playgroud)


小智 8

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

图片

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


mco*_*mco 5

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


mal*_*m91 5

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

implementation 'com.google.firebase:firebase-messaging:20.0.0'
Run Code Online (Sandbox Code Playgroud)


Ade*_*adi 5

我的项目运行正常(无构建问题)。突然,我得到了这个错误

“已解决的Google Play服务库依赖关系取决于另一个版本。”

我发现这是因为我正在离线构建。

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