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

时间:2019-01-05 18:47:13

标签: android android-gradle 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。

     

以下依赖项是直接或直接的项目依赖项   具有传递依赖,从而导致与   问题。   -项目“应用”取决于com.google.firebase:firebase-firestore@17.1.5   -项目``app''取决于com.firebaseui:firebase-ui-auth@4.2.0

     

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

项目gradle:

buildscript {

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

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

    }
}

有人可以帮我吗?

22 个答案:

答案 0 :(得分:8)

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

image

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

答案 1 :(得分:7)

问题是缺少一个依赖项。 添加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'
}

答案 2 :(得分:5)

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

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

答案 3 :(得分:5)

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

  

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

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

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

答案 4 :(得分:4)

在我的项目的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菜单

答案 5 :(得分:3)

对于单个解决方案,这里有很多答案并不能真正解决问题。 以下是一般解决方法

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

./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]

从此列表中,您了解2件事:

  1. 在哪里发现冲突?
  2. 设置了哪些版本的冲突依赖项

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

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

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

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

现在,构建可以再次运行。大结局:)

答案 6 :(得分:3)

没有其他答案对我有用。我的用例是from itertools import combinations from collections import defaultdict def get_nested_list(arr, n, k): iterator = 0 nest = [] d = defaultdict(set) for i in range(1, n): for combo in combinations(arr, i): odd_num = 0 for item in combo: if item % 2 != 0: odd_num += 1 if odd_num <= k: iterator += 1 skip = False len_c = len(combo) for j, n in enumerate(combo): if n in d.get((len_c, j), set()): skip = True break d[(len_c, j)].add(n) if skip: continue nest.append(combo) nest = [list(i) for i in nest] return nest a = [1, 2, 3, 4] b = len(a) c = 1 res = get_nested_list(a, b, c) print(res) assert res == [[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [1, 2, 4]] 尝试设置FCM和Analytics。对我有用的是在INVOCATION_VARIABLES: deployTarget1: cpspgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP1' HA_PGPOOL_WATCHDOG_PORT: '5445' PCP_PORT: '5440' PGPOOL_PORT: '5441' POOL_NUMBER: '0' pgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP2' HA_PGPOOL_WATCHDOG_PORT: '5435' PCP_PORT: '5430' PGPOOL_PORT: '5431' POOL_NUMBER: '0' deployTarget2: cpspgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP1' HA_PGPOOL_WATCHDOG_PORT: '5445' PCP_PORT: '5440' PGPOOL_PORT: '5441' POOL_NUMBER: '1' pgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP2' HA_PGPOOL_WATCHDOG_PORT: '5435' PCP_PORT: '5430' PGPOOL_PORT: '5431' POOL_NUMBER: '1' deployTarget3: cpspgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP1' HA_PGPOOL_WATCHDOG_PORT: '5445' PCP_PORT: '5440' PGPOOL_PORT: '5441' POOL_NUMBER: '2' pgpoolc: - HA_PGPOOL_VIRTUAL_IP: 'vIP2' HA_PGPOOL_WATCHDOG_PORT: '5435' PCP_PORT: '5430' PGPOOL_PORT: '5431' POOL_NUMBER: '2'

中使用最新的React-Native 61+
google-services

然后将gradle依赖项添加到here中我正在使用的产品(在我的情况下为Analytics和Cloud Messaging)所需的android/build.gradle

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

答案 7 :(得分:2)

我正在使用一个信号并一次捕获到此错误。

原因是:

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

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

答案 8 :(得分:2)

我只是亲自尝试了@ live-love的accepted answer,并同意该方法。

但是,根据the latest Google Services library version更正依赖项可能更为精确。

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

您需要在Project和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。

答案 9 :(得分:1)

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

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

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

答案 10 :(得分:1)

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

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

enter image description here

然后通过以下步骤更新与Firebase相关的软件包:

文件>项目结构>依赖关系>应用

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

enter image description here

我正在使用:

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文件。

enter image description here

答案 11 :(得分:1)

对我来说,可行的解决方案是删除“ 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'

答案 12 :(得分:1)

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

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

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

答案 13 :(得分:1)

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

答案 14 :(得分:0)

存在与Google服务相关的错误,该错误最终在版本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'

答案 15 :(得分:0)

这是我的新鲜事,如果您的网络不安全,并且系统提示您输入不受信任的证书。

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

您可以通过选中设置-> Gradle->离线模式

来离线工作

答案 16 :(得分:0)

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

我使用android studio提供的建议,它更改了实现,但没有更改依赖项,因此在构建过程中,两者之间存在冲突,并且给了我同样的错误。

答案 17 :(得分:0)

当我不小心将com.google.firebase:firebase-ml-vision添加了不同版本两次时,我复制了该问题。

答案 18 :(得分:0)

我通过清除应用程序级别的依赖项块解决了它,仅保留了默认的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 :(得分:0)

使用Google Services 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
    }
}

答案 20 :(得分:0)

谢谢,但是不幸的是,这并不完全适合我。我还必须将以下内容添加到我的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'

答案 21 :(得分:0)

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'
    ...
}