Обновление конфликта версий до 8.4.0


197

Ошибка :

Не удалось выполнить задачу «: app: processDebugGoogleServices». Исправьте конфликт версий, либо обновив версию плагина google-services (информация о последней версии доступна здесь ), либо обновив версию com.google.android.gms до 8.3.0.

Я сделал все, что нашел.

  dependencies {
            // This does not break the build when Android Studio is missing the JRebel for Android plugin.
            classpath 'com.zeroturnaround.jrebel.android:jr-android-gradle:1.0.+'
            classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
            classpath 'com.google.gms:google-services:2.0.0-alpha3'

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

И в приложении Gradle

    compile 'com.google.android.gms:play-services:8.4.0'

Ответы:


336

Используйте эти зависимости для проекта build.gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
    classpath 'com.google.gms:google-services:2.0.0-alpha3'
}

и поместите это в конец файла build.gradle уровня приложения (после зависимостей).

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

Я понятия не имею, почему установка этого в конце (а не в начале) устраняет ошибку.

РЕДАКТИРОВАТЬ 1/1/2016

Хорошо ... Итак, пытаясь положить конец всем проблемам, с которыми вы, ребята, столкнулись, с моим решением

Это мой последний уровень приложения Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "your-app-name"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    jcenter()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:design:23.1.1'
    compile 'com.mcxiaoke.volley:library:1.0.6@aar'
}

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

и это мой последний уровень проекта Gradle

// 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.0.0-alpha3'
        classpath 'com.google.gms:google-services:2.0.0-alpha3'

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

allprojects {
    repositories {
        jcenter()
    }
}

Сравните это с вашими собственными файлами Gradle и добавьте или измените любые значения, которые отличаются от того, что я написал.


4
compile 'com.google.android.gms:play-services-auth:8.4.0также будет необходимо.
Shajeel Afzal

2
Мне всегда интересно, как люди натыкаются на подобные решения. Методом проб и ошибок? Священные свитки?
А. Стинберген

77
Зачем помещать это apply plugin: 'com.google.gms.google-services'в конец файла build.gradle и начинать с самого начала?
toobsco42

8
Ни одно из перечисленных выше решений не работает для меня на 8.4.0. Все сбой после 2-го «Перестройки проекта», который я выполняю после сохранения build.gradle Первая сборка работает (или громко не дает сбой), вторая выдает ошибку около 8.3.0 против 8.4.0. Использование «com.google.android.gms: play-services» вместо отдельных пользователей не удалось. Использование (`classpath 'com.google.gms: google-services: 2.0.0-alpha3'`) не удалось с другой ошибкой (во 2-й сборке), поэтому я использую 1.5.0. Использование не Studio Preview не имело никакого значения.
Арберг

5
ВАЖНО Не забудьте добавить свой файл google-services.json! в противном случае произойдет сбой с сообщением «Файл google-services.json отсутствует в корневой папке модуля». Вы можете создать файл здесь: developers.google.com/analytics/devguides/collection/android/v4 И, как говорят документы, затем вы добавите этот файл в projectFolder / app (так что это корень вашего app-модуля).
Мартин Пфеффер

63

В модуле приложения (build.gradle)

Переезд:

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

до последней строчки решил вопрос.


3
для всех, кто интересуется, почему перемещение apply plugin:...строки в конец работает, это происходит из-за этого: «Для этого шага требуется, чтобы строка« Подключить плагин »: com.google.gms.google-services находилась внизу файла app / build.gradle. чтобы не возникало коллизий зависимостей. Вы можете увидеть результат этого шага, запустив ./gradlew: app: dependencies. "
Тони Чан

15

Сделайте следующее:

  1. Поместите следующее в свой build.gradle (файл Gradle уровня приложения)

    dependencies {
          classpath 'com.android.tools.build:gradle:2.0.0-beta2'
          classpath 'com.google.gms:google-services:2.0.0-beta2'
    }

Пожалуйста, проверьте здесь последнюю версию, так как она постоянно меняется.

  1. Если вы получаете следующее сообщение об ошибке, вам нужно обновить упаковщик Gradle до последней версии в gradle-wrapper.properties. Я использую 2.10.

Плагин слишком старый, обновите его до более новой версии или установите переменную среды ANDROID_DAILY_OVERRIDE

  1. Поместите следующую строку внизу вашего build.gradle (файл уровня уровня модуля)

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

1
Добавление строки применения плагина в нижней части моего build.gradle исправило это для меня. Спасибо!
Panda4Man

Рад, что вы указали, чтобы проверить ссылку на последнюю версию. Ни одна из бета-версий не работала на меня, и я понятия не имел, откуда люди берут все эти версии. 2.12 наконец-то сработало для меня.
Райан Х.

7

Похоже, что это исправлено в версии 3.0.0 плагина Google Services (и версии 9.0.0 библиотеки Google Play Services). Так с этим

верхний уровень build.gradle

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

уровень приложения build.gradle

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

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0
}

Quick Side Note: Если вы обновляете google-servicesплагин до версии 3.0.0 , обязательно перегенерируйте ваш файл конфигурации, так как он имеет новые поля (объяснение здесь ).

Редактировать (2016-06-20): Хотя это компилируется и запускается, я только что заметил, что в журналах сборки он указывает, что плагин должен находиться внизу файла, или будет использоваться значение по умолчанию (9.0.0). Так что в описанной выше ситуации это не проблема, так как я использую версию 9.0.0, но это может быть проблематично при обновлении зависимости. Вот журнал:

google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used. please apply google-services plugin at the bottom of the build file.


5

У меня работает только это:

Высший уровень.

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'
}

Уровень приложения:

dependencies {
    compile 'com.google.android.gms:play-services-gcm:9.0.1'
    compile 'com.google.android.gms:play-services-location:9.0.1'
}

// should be at the bottom
apply plugin: 'com.google.gms.google-services'

1
переход apply plugin: 'com.google.gms.google-services'на дно сделал работу в моем проекте
Наполеон

должно быть в нижней части является ключевым фактором здесь
д-р АНДРО

4

нашел в официальном примере

в проекте gradle

// 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.0.0-alpha9'
        classpath 'com.google.gms:google-services:2.0.0-alpha9'

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

allprojects {
    repositories {
        jcenter()
    }
}

в приложении Gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.google.samples.quickstart.signin"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }

    // Resolve dependency differences between app and tests
    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:23.1.1'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'

    // Dependency for Google Sign-In
    compile 'com.google.android.gms:play-services-auth:8.4.0'

    // UiAutomatorTesting
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    androidTestCompile 'com.android.support:support-annotations:23.1.1'
}

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

1
Для использования alpha9работал у меня с Gradle 2.11. Спасибо тебе за это! Можете ли вы дать ссылку на официальный пример, может быть, это также полезно для других проблем, таких как эта.
Чиленко,


2

Я обновил в приложении build.gradle

dependencies {
....
compile 'com.google.android.gms:play-services-auth:9.0.0'

и приложение build.gradle

  dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'
}

Это работает для.


2

В моем случае я удалил «применить плагин:« com.google.gms.google-services »» из конца gradle.build и он работает нормально.



1

Я зашел на поиски ... на странице Google есть решение ... https://developers.google.com/android/guides/google-services-plugin#introduction

Добавьте зависимости для базовых библиотек, необходимых для включенных вами служб. Для этого шага необходимо, чтобы строка «Подключить плагин: com.google.gms.google-services» была в конце файла app / build.gradle, чтобы не возникали конфликты зависимостей. Вы можете увидеть результат этого шага, запустив ./gradlew: app: dependencies.


1

Нет смысла в перемещении применить плагин: 'com.google.gms.google-services'до конца build.gradle . Это то же самое, что не определять его.

Просто удалите эту строку и убедитесь, что применяется плагин: ' com.android.application' есть

Использование:

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

это скомпилируется.


Применение плагина влияет / может повлиять на то, какая версия используется. Посмотрите этот ответ rguerinet
Райан Х.

0

В проекте Gradle

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

в приложении / модуле gradle

apply plugin: 'com.google.gms.google-services'
android {
    ...
}

dependencies {
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
}


-3

Вот моя инструкция, чтобы исправить это.

  1. Изменить для использования compile 'com.google.android.gms:play-services-location:8.3.0'в приложенииbuild.gradle
  2. Перейти apply plugin: 'com.google.gms.google-services'в конец приложенияbuild.gradle
  3. Использование classpath 'com.google.gms:google-services:2.0.0-alpha3'в build.gradleзависимости от проекта
  4. Изменить для использования gradle-2.8вgradle/wrapper/gradle-wrapper.properties
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.