其他各种库都在请求com.google.android.gms:play-services-measurement-base


173

我更新到gradle 4.0.1并开始收到以下错误

各种其他库都在[[15.0.4,15.0.4]]请求com.google.android.gms:play-services-measurement-base库,但解析为15.0.2。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。

我的项目不使用该依赖关系,因此我在全局范围内进行搜索,并且它仅出现在内部

build / intermediates / lint-cache / maven.google / com / google / android / gms / group-index.xml

作为这条线

<play-services-measurement-base versions="15.0.0,15.0.2"/>

因此,我尝试删除构建文件夹并清理项目,但是它使用相同的值重新生成它:/因此仍然存在错误


在此解决: 尝试在Firebase中添加crashlytics时,我也面临着同样的问题。请更新为最新版本的依赖com.google.android.gms:播放服务com.google.firebase:......。它会自动解决的问题
普里亚拉詹

我使用的是最新版本,但此错误已降级为15.0.1,并且可以正常工作!
landrykapela

请转到此问题并加注星标。似乎有很多问题,因为jCenter上有许多未发布的库。
Patricio Sard

Answers:


173

实际问题在https://developers.google.com/android/guides/releases#may_23_2018 5月23日发行说明中进行了讨论

基本上,您需要将所有Play ServicesFirebase库升级到最新版本(自15版以来,每个可能有所不同)。您可以使用https://mvnrepository.com/查找每个库的最新版本。

另请参阅:https : //firebase.google.com/support/release-notes/android#20180523


5
maven.google.com也适合查找这些库的发行版本。
PaulR

52
救生员。Google应该简化此版本。这很痛苦
Dibzmania

1
您的回答帮助我弄清楚了这一点。但是我必须使用这篇文章才能真正获得项目中包含的正确版本并克服错误。
雅各布·乔尔

12
我使用了所有库的最新版本,但错误仍然存​​在。
学生

2
如果将所有库更新到各自的最新版本,则会收到警告,指出“所有gms / firebase库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。” 这是预期的吗?您如何解决此问题以及原始问题?
user3369427

86

对我来说唯一可行的解​​决方案:

把它放在build.gradle的底部

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

10
对我来说,此解决方案隐藏了该消息,然后以另一种方式提出该消息:“ Android依赖项'com.google.android.gms:play-services-measurement-base'对于编译(15.0.4)和运行时( 16.0.0)classpath。您应该通过DependencyResolution手动设置相同的版本”
ARLabs

它是唯一对我有用的解决方案。即使所有gradle库都是最新的。
Neri

它有效,但是将其用作最后的手段。我已同步所有Google Play和Firebase版本,但一个库拒绝接受该版本(硬编码要求仅一个特定版本)。
pmont

这是个玩笑Firebase Android SDKs now have independent version numbers, allowing for more frequent, flexible updates.
Kimi Chiu

18
这是最糟糕的事情;忽略问题不是“解决方案”。
马丁·泽特勒

31

确保将您的Google play服务依赖性和Firebase依赖性保持为最新版本。

还要检查所有gradle文件,模块级别和项目级别,所有模块之间必须只有一个通用的依赖版本。可以通过在项目级别的gradle变量中保留这些版本来解决。

在此处查看Google Play服务更新版本

Google Play服务最新

在此处查看Firebase的更新版本

Firebase最新

在此处查看适用于Android的Firebase更新版本

Firebase Android最新


这很有用。使用react-native,必须将我们使用的软件包更新为最新的这些链接。
publicknowledge19年

即使您仅依赖一个Google库,也可能发生这种情况!查看我的回答以了解原因(非常旧的Android Gradle插件)。
NateS


9

将我更改build.gradle为以下内容对我有用:

ext {
  googlePlayServicesVersion   = "15.0.1"
}

allprojects {
  repositories {
      mavenLocal()
      maven { url 'http://maven.google.com' }
      jcenter { url "http://jcenter.bintray.com/" }
      google()
      maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"
      }

      configurations.all {
        resolutionStrategy {
            force "com.google.android.gms:play-services-basement:$googlePlayServicesVersion"
            force "com.google.android.gms:play-services-tasks:$googlePlayServicesVersion"
        }
      }
  }
}

谢谢,这对我很有帮助,并解决了我的错误。atleast给了我下一个错误的方向,我将它们放在相同的分辨率中策略
丹麦

为了明确起见,它添加了ext {...}阻止代码以强制解决此问题的版本
Aaron

7

就我而言,使用以下最新版本dependencies解决了我的问题:

'com.google.android.gms:play-services-analytics:16.0.1'
'com.google.android.gms:play-services-tagmanager:16.0.1'

5

如果您的Android Gradle插件非常旧,即使您仅使用一个Google lib,也可能发生这种情况!显然,所有Google库过去都必须是完全相同的版本。现在,它们不必相同,只需最新。当甚至指定一个库时,它会引入版本不匹配的依赖项以及旧的Android Gradle插件呕吐。

设置新版本,例如:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
    }
}

您可能需要更新Gradle才能使用更新的插件(它将告诉您)。


3

唯一对我有用的解决方案(在SOF中找到了一些地方)(没有链接)是:

在最主要的build.grale中

allprojects {

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.google.android.gms'
                    && !details.requested.name.contains('multidex')) {
                details.useVersion "x.y.z"
            }
        }
    }
}

3
现在我得到了不同的错误The library com.google.firebase:firebase-analytics is being requested by various other libraries at [[16.0.3,16.0.3]], but resolves to 16.0.1. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.
Eric Kim

3

添加到您的依赖项列表。现在需要使用它来正确处理所有firebase依赖项:

implementation 'com.google.firebase:firebase-core:16.0.1'

3

我遇到过同样的问题

只要确保您具有所有依赖项的最新版本即可。我将当前版本用于Firebase核心和身份验证。较新的版本已修复错误。

您可以从此处获取最新版本:https : //firebase.google.com/support/release-notes/android

在当前时间使用最新版本:

在app / build.gradle中:

dependencies {
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-auth:16.1.0'
}

3

当我尝试将Firebase数据库添加到我的项目时,我也遇到了类似的问题。

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.3'

可以通过将两个版本降级或升级到类似级别来解决此问题。所以我将firebase数据库降级到

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1'

而且有效!可以在以下站点上搜索所有可用版本:https : //mvnrepository.com/


1
在搜索了很多文章之后为我工作。添加Firebase数据库时出现错误。谢谢
gauravsngarg

2

您可以使用以下方法找到依赖关系的库:

$ ./gradlew app:dependencies

3
这是行不通的,它只是吐出相同的错误而没有依赖图。
jasonhudgins

3
您需要先删除Apply插件:“ com.google.gms.google-services”行,然后再尝试避免显示错误
Kata Lune

1
我禁用了插件,并检查了依赖性。但是没有任何一个库例外地声明对15.0.4的依赖The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.4,15.0.4], [16.0.0,16.0.0]], but resolves to 16.0.0.
miszmaniac

1
@miszmaniac我有完全相同的问题。降级既play-services-analyticsfirebase-core16.0.0解决该问题。
NoHarmDan

对于Firebase库,这种新的非相等版本的系统现在是悲剧。昨天我们在应用启动时发生了随机崩溃,因为firebase出于某种奇怪的原因而无法初始化(...)...我们不得不禁用(清单中)firebase-perf才能删除崩溃
miszmaniac 18'Aug

2

我有一个错误 The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[16.0.2,16.0.2]], but resolves to 16.0.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.

运行./gradlew :app:dependencies将揭示哪些依赖项需要错误的依赖项(方括号中的)。对我来说,问题来自firebase-core:16.0.3,如下所示。我通过将Firebase-core降级到16.0.1来修复它

+--- com.google.firebase:firebase-core:16.0.3
|    +--- com.google.firebase:firebase-analytics:16.0.3
|    |    +--- com.google.android.gms:play-services-basement:15.0.1
|    |    |    \--- com.android.support:support-v4:26.1.0 (*)
|    |    +--- com.google.android.gms:play-services-measurement-api:[16.0.1] -> 16.0.1
|    |    |    +--- com.google.android.gms:play-services-ads-identifier:15.0.1
|    |    |    |    \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
|    |    |    +--- com.google.android.gms:play-services-basement:15.0.1 (*)
|    |    |    +--- com.google.android.gms:play-services-measurement-base:[16.0.2] -> 16.0.2

2

对我来说,由于之间的版本冲突,在通过Firebase集成Crashlytics之后出现了此错误

implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.android.gms:play-services-location:15.0.1'

我首先尝试将Firebase Core降级到15.0.1,但是似乎没有这样的版本,只有15.0.0and 15.0.2相反,我不得不将两者都降级为version 15.0.0,所以我最终得到了

implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.android.gms:play-services-location:15.0.0'

因此,现在它可以工作了,但是我收到了有关新版本可用的讨厌的Lint警告。此版本控制崩溃是一个怪胎。


1

我遇到了这个问题,并注意到发行说明提到了:

Firebase现在需要应用gradle文件明确列出com.google.firebase:firebase-core作为Firebase服务按预期工作的依赖项。

建立firebase-core应用程序依赖性(以及库依赖性)对我来说解决了这个问题。


1

1.打开项目级别的build.gradle

com.google.gms:google-services版本更新到最新。跟踪最新版本。回答时最新是4.1.0

2.打开应用程序级别build.gradle

如果使用任何依赖项,请更新以下依赖项。请注意, firebase现在为每个依赖项提供了单独的版本。

使用最新的Firebase库。在回答时,最新版本如下。

Firebase Core                com.google.firebase:firebase-core:16.0.3
Ads                          com.google.firebase:firebase-ads:15.0.1
Analytics                    com.google.firebase:firebase-analytics:16.0.3
App Indexing                 com.google.firebase:firebase-appindexing:16.0.1
Authentication               com.google.firebase:firebase-auth:16.0.3
Cloud Firestore              com.google.firebase:firebase-firestore:17.1.0
Cloud Functions              com.google.firebase:firebase-functions:16.1.0
Cloud Messaging              com.google.firebase:firebase-messaging:17.3.2
Cloud Storage   c            om.google.firebase:firebase-storage:16.0.2
Crash Reporting              com.google.firebase:firebase-crash:16.2.0
Crashlytics                  com.crashlytics.sdk.android:crashlytics:2.9.5
Dynamic Links                com.google.firebase:firebase-dynamic-links:16.1.1
Invites                      com.google.firebase:firebase-invites:16.0.3
In-App Messaging             com.google.firebase:firebase-inappmessaging:17.0.1
In-App Messaging Display     com.google.firebase:firebase-inappmessaging-display:17.0.1
ML Kit: Model Interpreter    com.google.firebase:firebase-ml-model-interpreter:16.2.0
ML Kit: Vision               com.google.firebase:firebase-ml-vision:17.0.0
ML Kit: Image Labeling       com.google.firebase:firebase-ml-vision-image-label-model:15.0.0
Performance Monitoring       com.google.firebase:firebase-perf:16.1.0
Realtime Database            com.google.firebase:firebase-database:16.0.2
Remote Config                com.google.firebase:firebase-config:16.0.0

同步和构建...


1

我注意到调试日志提到了旧版本的firebase-analytics(16.0.0)。明确添加最新版本可解决此问题:

implementation "com.google.firebase:firebase-analytics:16.0.3"

1

将所有依赖项更新到最新版本,它将解决此问题。

无需添加
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

如果使用混合版本,将导致崩溃。


1

我猜测以下错误是由于Firebase依赖关系的版本不同而引起的。对我来说,将我在项目中实现的所有依赖项的版本更改为16.0.1,就像一个魅力。

对我来说,错误是由以下行造成的: com.google.firebase:firebase-auth:16.0.2

我将其更改为: com.google.firebase:firebase-auth:16.0.1

并奏效了。希望这会有所帮助。


1

就我而言,这可以解决问题:

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

1

就我而言,我已将我的build.gradle文件替换为这一行

implementation 'com.google.firebase:firebase-core:16.0.8'

implementation 'com.google.firebase:firebase-core:15.0.0' 

并添加了这一行

implementation 'com.google.android.gms:play-services-location:15.0.0'

现在很好


1

我有类似的问题,可以通过以下方式解决:

  1. 在应用层面的gradle产出:更新所有火力的依赖到最新版本最新
  2. 在项目级别gradle中:将依赖关系更新为最新版本:gms.google-services,在我的情况下为:'com.google.gms:google-services:4.2.0'

这就是魔力所在。app / build.gradle中的所有依赖项,然后是最顶层的build.gradle文件,将更新所有依赖项
leeCoder

1

我在项目中更改了以下依赖项以使其正常运行。

build.gradle(应用程序):

implementation 'com.google.firebase:firebase-core:16.0.1'

implementation 'com.google.firebase:firebase-core:16.0.8'

build.gradle(app):

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

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

****注意

使用以下链接更新具有依赖性的库的使用 https://firebase.google.com/docs/android/setup


1

使用Firebase的更新版本,并避免其他操作。这就足够了(但是如果您需要使用存储空间或..,也应该添加它们)

//FIREBASE
implementation 'com.google.firebase:firebase-core:17.2.0'
 implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
//ADMob
implementation 'com.google.android.gms:play-services-ads:18.2.0'
//PUSH NOTIFICATION
implementation 'com.google.firebase:firebase-messaging:20.0.0'
implementation 'com.google.firebase:firebase-core:17.2.0'

并更新google-services:

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

谢谢您使用这些版本解决了我的问题。
SriTeja Chilakamarri


0

如果消息是:

各种其他库都在[[15.0.4,15.0.4]]请求com.google.android.gms:play-services-measurement-base库,但解析为15.0.2。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。

将所有正在使用的播放服务库的版本更改为所需的版本(在本例中为15.0.2)可以解决此问题。

就我而言,我已更改:

implementation 'com.google.android.gms:play-services-base:+' -> implementation 'com.google.android.gms:play-services-base:15.0.2'
implementation 'com.google.android.gms:play-services-location:+' -> implementation 'com.google.android.gms:play-services-location:15.0.2'
implementation 'com.google.android.gms:play-services-maps:+' -> implementation 'com.google.android.gms:play-services-maps:15.0.2'
implementation 'com.google.android.gms:play-services-auth:+' -> implementation 'com.google.android.gms:play-services-auth:15.0.2'
implementation 'com.google.android.gms:play-services-places:+' -> implementation 'com.google.android.gms:play-services-places:15.0.2'

0

在此解决: 尝试在Firebase中添加crashlytics时,我也面临着同样的问题。请更新为最新版本的依赖com.google.android.gms:播放服务com.google.firebase:......。它将自动解决问题


0

当我尝试添加firebase-database实现时,我遇到了同样的问题,如果我注释了该行,那么在尝试了几次之后,我去了https://firebase.google.com/docs/android/setup

在那里,我检查了可用库的版本,并且我的firebase-core为16.0.1(当前版本为16.0.4),因此我手动对其进行了更改,并且工作正常,构建和同步均成功。


0

就我而言,我只是删除

implementation "com.google.android.gms:play-services-ads:16.0.0

并添加Firebase广告依赖项

implementation 'com.google.firebase:firebase-ads:17.1.2'

0

有同样的问题。您必须在冒号中的版本之后删除冒号:(这是一个错误)。

这些设置对我有用:

implementation 'com.google.firebase:firebase-firestore:17.1.5'

还要在gradle中将multiDexEnabled设置为true(如果出现DexOverflowException错误):

    android {
        compileSdkVersion 27
..
            multiDexEnabled true
        }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.