Google Play Services GCM 9.2.0 просит «обновить» обратно до 9.0.0

178

Итак, сегодня утром я начал обновление до последней версии моих библиотек проектов.

Я пытаюсь обновить GCM до последней версии 9.2.0, но я получаю эту ошибку:

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

Вот как у меня есть мой код:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

А потом:

dependencies {
    ...

    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

Кто-нибудь имеет ту же проблему / исправил ту же проблему?

Спасибо.

РЕДАКТИРОВАТЬ

Очевидно, вы должны применить свой плагин GSM в нижней части вашего файла app / build.gradle. Иначе, версия 9.2.0 вызовет конфликт в вашем проекте.

Для справки, вот так выглядит мой файл app / build.gradle:

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt"

android {
    ...
}

dependencies {
    ...

    // Google Cloud Messaging
    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

apply plugin: "com.google.gms.google-services"
herrmartell
источник
та же проблема здесь, я откатился до 9.0.0
mbonnin
@mbonnin Я закончил тем же. Но наверняка хотел бы знать, что здесь происходит. Еще не повезло найти ответ.
Herrmartell
2
И затем 9.0.0 имеет эту ошибку stackoverflow.com/questions/37361651/… и решение, кажется, заключается в обновлении до 9.2.0 .... Что невозможно из-за ошибки здесь :-(
mbonnin
6
это работает, если я применяю плагин в конце файла build.gradle, как Густема говорит ниже
mbonnin
Читайте, как исправить эту проблему в моем посте здесь .
Педро Варела

Ответы:

507

У вас есть линия

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

в нижней части файла build.gradle вашего приложения?

Я видел некоторые ошибки, когда он был сверху, и как написано здесь , он должен быть внизу.

Gusthema
источник
11
Это не так, плагин gms должен быть в нижней части файла, как вы можете видеть здесь на документах для gms: developers.google.com/android/guides/google-services-plugin
Gusthema
1
Я стою исправлено. В любом случае, это не решит проблему.
Herrmartell
1
Я не уверен, почему в первый раз я попробовал, это не сработало. Просто попробовал еще раз из-за комментария @mbonnin, и теперь он работает. Спасибо.
Herrmartell
9
Я добавил эту строку в начале файла, но она сработала после того, как она была помещена внизу.
SHA2NK
2
Добавление плагина внизу разрешило конфликт версий.
Пратима
54

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

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

Затем перестройте свой проект.

Викас
источник
11

У меня была такая же проблема, сегодня 2016 - октябрь - 06 я решил с этим:

Я изменил все зависимости, которые начинались с 9. до 9.6.1 Я скомпилировал с SDK версии 24 и целевой версии 17.

В моем решении есть другие пакеты, потому что я использовал больше вещей, чем только аутентификацию.

После изменения вашего build.gradle (Module: app) с кодом ниже сделайте это:

  1. Поместите имя пакета в строку со словами applicationId "com.YOUR_PACKAGE_HERE"

  2. Синхронизируйте ваш проект (Ctrl + Alt + V) и Build Again.

Это код файла buid.gradle (Module: app), который работал для меня:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.YOUR_PACKAGE_HERE"
        minSdkVersion 24
        targetSdkVersion 17
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.firebase:firebase-database:9.6.1'

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'

    compile 'com.google.firebase:firebase-crash:9.6.1'
    testCompile 'junit:junit:4.12'

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

    compile 'com.google.firebase:firebase-ads:9.6.1'


    compile 'com.google.firebase:firebase-auth:9.6.1'


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

}
apply plugin: 'com.google.gms.google-services'
Gustavomcls
источник
6

Такая же ситуация была с предыдущими версиями. Досадно, что новые версии библиотек com.google.android.gms всегда выпускаются перед плагином, и невозможно использовать новую версию, потому что она несовместима со старым плагином. Я не знаю, требуется ли сейчас плагин (Google Docs отстой). Я помню времена, когда этого не было. Единственный способ - дождаться новой версии плагина, или вы можете попытаться удалить зависимости плагина, но, как я уже сказал, я не уверен, будет ли gcm работать без него. Что я знаю, главная особенность версии 9.2.0 - это новый Awareness API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , если вам это не нужно, вы можете использовать 9.0. 0 версия без проблем.

yaneq6
источник
Ах, пойди разберись. Поскольку в документации не указано иное, я предполагал, что новейшие версии будут выпущены с необходимым плагином. AFAIK, вам нужен плагин, чтобы заставить работать GCM, поэтому я предполагаю, что это решение для проверки обновлений вручную.
Herrmartell
1
Наверняка @yaneq google docs отстой, у меня та же проблема прямо сейчас
Lutaaya Huzaifah Idris
5

Решение Gustavomcls по изменению версии com.google. * На ту же версию работало для меня.

Я изменяю обе зависимости на 9.2.1 в buid.gradle (Модуль: приложение)

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
Рахул Багал
источник
У меня была эта проблема также из-за firebase, но мне не нравится, когда это решение понижает версию firebase до 9.2.1
Сэм Беллероз,
2

откройте app/build.gradleиз вашего app-модуля и перепишите ниже строку после блока зависимостей. Это позволяет плагину определять, какую версию сервисов Play вы используете.

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

Я получил эту идею отсюда . В этом уроке второй пункт говорит, что над строкой плагина находится внизу вашего app/build.gradleфайла, чтобы не возникало коллизий зависимостей. Надеюсь, это поможет вам.

Рахул Шарма
источник
Почему вы повторяете ответы, которые были даны полгода назад?
бувигер
2

For Cordova OR Ionic Hybrid App

У меня очень похожая проблема с моей Ionic 1 Cordova Build после интеграции Firebase Cloud Messaging (FCM)

Я исправил эту проблему с помощью следующих шагов

Итак, одно исправление будет: внутри платформы / Android откройте project.properties (это файл), у вас будет что-то вроде этого

cordova.system.library.1=com.google.android.gms:play-services-ads:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+

Заменить

+

Подпишите с номером вашей целевой версии - как показано ниже

cordova.system.library.1=com.google.android.gms:play-services-ads:9.0.0
cordova.system.library.2=com.google.firebase:firebase-core:9.0.0
cordova.system.library.3=com.google.firebase:firebase-messaging:9.0.0

Сохранить файл

Затем возьмите сборку, используя

 ionic cordova run android

Я надеюсь, что это будет работать для всех

Сиджо Виджаян
источник
Это просто изменило ошибку. Это хорошо, так как я получаю только ту же ошибку, даже с тысячами пробных решений.
космонавт
2

Добавьте эту строку в нижней части Gradle.

применить плагин: 'com.google.gms.google-services'

потому что это вершина, это не работает. Я столкнулся с подобной проблемой.

Мудассир Хан
источник
1

если у вас также есть Firebase, сделайте их той же версии, что и в сообщении об ошибке.

srlgrg
источник
0

У меня не было проблемы с этим, пока я не попытался использовать Location Services, после чего я должен был поместить apply plugin: 'com.google.gms.google-services'внизу файла, а не вверху. Причина в том, что, когда у вас есть это наверху, есть проблемы столкновения, и, помещая это внизу, вы избегаете этих проблем.

BlackHatSamurai
источник
-1

Ваша цель SDKможет быть выше, чем SDKу устройства, измените это. Например, ваше устройство работает с API 23, но ваша цель SDK- 25. Измените 25 на 23.

Мохит Мишра
источник