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

com.google.android.gms:play-services-measurement-base is being requested by various other libraries

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

The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.4,15.0.4]], but resolves to 15.0.2. Disable the plugin and check your dependencies tree using ./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"/>

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

您可以使用以下方法找到提取此依赖项的库:

$ ./gradlew app:dependencies

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

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

在顶部主要 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"
            }
        }
    }
}

唯一适合我的解决方案:

放在build.gradle的底部

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

在我的例子中,使用以下 dependencies 的最新版本解决了我的问题:

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

添加到您的依赖项列表。现在需要它才能使所有 firebase 依赖项正常工作:

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

我猜下面的错误是由于firebase依赖的不同版本造成的。对我来说,将我在我的项目中实现的所有依赖项的版本更改为 16.0.1,效果非常好。

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

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

成功了..希望这有帮助。

我的情况是我在下面使用最新的 rnfirebase URL

https://rnfirebase.io/docs/v4.3.x/installation/android

在下面添加 android/app/proguard-rules.pro)

-keep class io.invertase.firebase.** { *; }
-dontwarn io.invertase.firebase.**

我更新了

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

对我有用

我遇到了一个错误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

我遇到了这个问题,注意到 release notes 提到:

Firebase now requires the app gradle file to explicitly list com.google.firebase:firebase-core as a dependency for Firebase services to work as expected.

制作 firebase-core 应用程序依赖项(以及库依赖项)为我解决了这个问题。

1。打开项目级别 build.gradle

更新 com.google.gms:google-services 版本到最新版本。 Track latest release。最晚回答的时间是 4.1.0.

2。打开应用级别 build.gradle

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

使用latest Firebase Libraries。回答时最新版本如下。

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

同步并构建...

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

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

如果消息是:

The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.4,15.0.4]], but resolves to 15.0.2. Disable the plugin and check your dependencies tree using ./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'

对我来说,这个错误是在通过 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,但似乎 there is no such version, only 15.0.0 and 15.0.2! 相反,我不得不将两者都降级到版本 15.0.0,所以我最终得到了

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

所以现在它可以工作了,但是我收到了关于新版本可用的烦人的 Lint 警告。这个版本控制崩溃真是一团糟。

确保将您的 Google 播放服务依赖项和 Firebase 依赖项保持为最新版本。

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

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

Google Play Services Latest

在此处查看 Firebase 更新版本

Firebase Latest

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

Firebase Android Latest

将“+”替换为版本号,会选择最新版本。 像这样:

implementation 'com.google.firebase:firebase-analytics:+'

此处解决: 尝试在 firebase 中添加 crashlytics 时,我也遇到了同样的问题。请为 com.google.android.gms:play-servicescom.google.firebase 更新最新版本的依赖项:...... .它会自动解决问题

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

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

混合使用会导致崩溃

我在尝试添加 firebase-database 实现时遇到了同样的问题,如果我评论那一行它就可以工作,所以在尝试了几次之后我去了 https://firebase.google.com/docs/android/setup

在那里我检查了可用库的版本,我的 firebase-core 是 16.0.1(当前版本是 16.0.4)所以我手动更改它并且它工作正常,构建和同步成功。

将我的 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"
        }
      }
  }
}

在我的例子中,我只是删除了

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

并添加 Firebase 广告依赖项

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

我有同样的问题

只需确保您拥有所有依赖项的最新版本。 我将当前版本用于 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'
}

当我尝试将 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/

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

这些设置对我有用:

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

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

    android {
        compileSdkVersion 27
..
            multiDexEnabled true
        }

只需输入以下代码:

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

并重建。它对我来说很好

firebase-core 和 firebase-database ... 应该是相同的版本:

实施'com.google.firebase:firebase-core:16.0.1' 实施 'com.google.firebase:firebase-database:16.0.1'

就我而言,这解决了问题:

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

我有同样的问题,然后我解决了随机实现 'com.google.firebase:firebase-auth:15+' 而不是实现 'com.google.firebase:firebase-auth:16.1.0'

这是一个简单的解决方案。 问题是因为您对一个库使用最新版本而对另一个库使用较低版本。尝试平衡它。最好的解决方案是为所有库使用最新版本。 要解决您的问题,只需单击 here 并查看最新版本的库并将其包含在您的项目中,然后进行同步。
在我的例子中,以下对我有用:

dependencies{
    implementation 'com.google.firebase:firebase-core:16.0.7'
    implementation 'com.google.firebase:firebase-database:16.1.0'
}
apply plugin: 'com.google.gms.google-services'

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

设置较新的版本,例如:

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

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

在我的例子中,我已经替换了我的 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. 在应用级别gradle:将所有 firebase 依赖项更新到最新版本latest
  2. 在项目级别 gradle 中:将依赖项更新为最新的:gms.google-services,在我的例子中是:'com.google.gms:google-services:4.2.0'

这可以通过使用最新的依赖集来解决。

您可以在下面的网站上找到最新的

https://firebase.google.com/support/release-notes/android#20180523

Post 再次同步,应该可以正常工作

我更改了项目中的以下依赖项以使其工作。

build.gradle(应用):

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

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

build.gradle(应用):

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

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

****注:

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

当我尝试对所有内容使用相同的版本时,我遇到了类似的错误:

implementation 'com.google.android.gms:play-services-base:16.0.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.0'
implementation 'com.google.android.gms:play-services-awareness:16.0.0'
implementation 'com.google.android.gms:play-services-cast:16.0.0'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.firebase:firebase-messaging:16.0.0'

当我执行以下操作时,问题已解决:

1) 使用了每项服务的最新版本:

implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.8'
implementation 'com.google.android.gms:play-services-awareness:16.0.0'
implementation 'com.google.android.gms:play-services-cast:16.2.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.firebase:firebase-messaging:17.6.0'

2) 已将 Android Studio 升级到今天可用的最新版本 (Android Studio 3.4)。

3) 升级 Android Gradle 插件版本到 3.4.0 和 Gradle 版本到 5.1.1.

我遇到了同样的错误,但我的情况不同我同时使用了 Audience Network 和 Firebase。

我遇到了这个错误

Android dependency 'com.google.android.gms:play-services-basement' has different version for the compile (11.0.4) and runtime (16.0.1) classpath. You should manually set the same version via DependencyResolution

如果您使用 audience-network

,这里是解决方案
implementation ("com.facebook.android:audience-network-sdk:$rootProject.fb_version")
{
    exclude group: 'com.google.android.gms'
}

使用更新版本的 Firebase 并避免附加功能。 这已经足够了(但是如果你需要使用存储 space 或 .. 你也应该添加它们)

//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-服务:

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

原因

当您的一个或多个 firebase 或 google play 服务库是旧版本时会发生此错误。

解决方案

只需更新所有库到最新版本。

如果您必须使用旧版本(例如出于制裁或其他原因),请遵循以下步骤:

  • googleServices.disableVersionCheck = true 添加到 app/build.Gradle 文件的末尾
  • 运行 项目并找到重复的库或有依赖性问题的库
  • 添加它们以排除旧库。

例子

// remote config uses the old version
implementation('com.google.firebase:firebase-config:16.1.3') {   
    exclude group: 'com.google.firebase', module: 'firebase-analytics'
    exclude group: 'com.google.firebase', module: 'firebase-analytics-impl'
    exclude group: 'com.google.android.gms', module: 'play-services-measurement'
    exclude group: 'com.google.android.gms', module: 'play-services-measurement-impl'
}
implementation 'com.google.firebase:firebase-analytics:17.4.0'
implementation 'com.google.firebase:firebase-messaging:20.1.6'
implementation 'com.google.firebase:firebase-crashlytics:17.0.0'

我已经使用了所有最新的依赖项。原来我在 AndroidManifest 中缺少权限。添加此权限修复了错误:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

如他们的文档所述: https://developers.google.com/android/guides/permissions