发现com.google.android.gms:play-services:8.4.0,但google-services插件需要版本8.3.0。

50
由于上述错误无法使用谷歌地图。有人遇到相同的问题吗?

如果您只使用Gmail身份验证,请验证此链接 - Raja Peela
9个回答

114

请确保以下代码位于应用程序的 build.gradle 文件末尾

Make sure that the following line is at the end of the app build.gradle file:

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

我的问题是,gradle默认使用8.3.0而不是指定的8.4.0版本。我的build.gradle文件与Version conflict updating to 8.4.0中的文件相同。


1
哇,这个可行。但是在build.gradle文件的末尾应用插件感觉很奇怪!我还没有在其他地方看到过这样的例子。 - IgorGanapolsky
1
不仅如此,而且请注意,如果插件不在文件末尾,则插件本身会生成此行:“请在构建文件底部应用google-services插件。”因此,这是正确的解决方案。 - Greg Ennis
1
这个可以工作。在命令行工作的愉悦之一就是错误详细信息有意义。当涉及修复Gradle问题时,AS是一个头疼的问题。 - humblerookie
@DatNguyen:我认为你的意思是这更像是一个临时应急方案而不是一个黑客技巧。正如雷蒙德·陈所问的那样,“如果有两个程序都这样做会怎么样?” - Craig Stuntz
我猜一旦你有状态构建描述文件,这些事情就会发生。 - bompf

27

由于以前的答案只是部分完成。

这里是我的三个步骤,对我来说效果很好:

  1. 将以下内容放置在您的应用程序 build.gradle末尾:

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

  2. 项目的build.gradle依赖项设置为:

    'classpath 'com.google.gms:google-services:2.0.0-alpha5''

  3. Gradle版本设置为2.10

    Android Studio:文件>项目结构>项目


我能够在应用程序的 build.gradle 中使用它,并且它可以正常工作。 - CWitty

20
@redsonic的回答对我很有效。只需在build.gradle(Module:app)中apply plugin: 'com.google.gms.google-services'放在依赖项之后即可。
我正在使用带有Gradle版本2.10的Android Studio 1.5.1。
如果你正在使用早于2.10的Gradle版本,你还需要通过选择Project工具窗口中的ProjectName或app目录并按F4键来更新它。这将打开Project Structure窗口,在菜单中选择Project并将Gradle版本更新为2.10。按OK按钮(Android Studio将在后台下载它)。
build.gradle(Project:ProjectName)
dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
    classpath 'com.google.gms:google-services:2.0.0-alpha6'
}

build.gradle(模块:app)

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:8.4.0'
}

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

2
请将-apply plugin: 'com.google.gms.google-services'放在dependencies区块之后,否则它不会起作用... - dudego

5
这是对@Lord Flash答案的轻微改变:
对我而言,重点不在于将Google服务插件放在文件底部,而是应该将其放在com.android.application插件之前。
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.android.application'

同时,Google服务的最新二进制文件已经更新,比alpha版本更加先进。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.google.gms:google-services:2.0.0-beta6'
    }
}

我相信很快就会有更新的版本。我在这里找到了变体的列表(点击此处)


2

请按照以下链接中的所有步骤进行操作:将应用邀请添加到您的应用中

使用此语句:compile 'com.google.android.gms:play-services-appinvite:8.4.0'

而不是此语句:compile 'com.google.android.gms:play-services:8.4.0'

请遵循所有步骤,然后构建项目。

希望这能帮助到您。


@袁师,你试过了吗?! - Amer Hadi
我结合了Yuval和@Amer Hadi的解决方案,现在问题已经解决了。 - shijin

2

我有同样的问题,后来发现将:

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

移动到模块app gradle文件的底部。

然后使用:

classpath 'com.android.tools.build:gradle:2.1.0' classpath 'com.google.gms:google-services:2.1.0'


0
// Top-level build file where you can add configuration options common to        all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

// this should solve the gradle update error if it persists even after following above steps

0
问题在于您的一些应用程序依赖项以com.google.android.gms:开头的版本与您的项目依赖项classpath'com.google.gms:google-services:不兼容。

请检查您的应用程序build.gradle文件中是否存在这些问题。

compile 'com.google.android.gms:play-services-plus:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services-maps:8.4.0'

在你的项目 build.gradle 文件中添加以下内容:

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

您可以更新项目的 build.gradle 文件以使用最新的 google-services 版本,或者只需更改应用程序依赖项以使用 8.3 版本。


0
请确保以下代码行位于应用程序 build.gradle 文件的末尾:
compile 'com.google.android.gms:play-services:11.0.2'

谷歌每天都在更新他们的API。现在我的API版本是'11.0.2',建议尝试使用最新的API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接