Служба Google Play 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"

    ...
}

Хто має той самий випуск / виправив те саме?

Дякую.

EDIT

Мабуть, ви повинні застосувати свій плагін GSM внизу файлу програми / 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"

тут же питання, я повернувся до 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 додатка?

Я бачив деякі помилки, коли він був зверху, і як це написано тут , він повинен бути внизу.


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 (Модуль: додаток) із наведеним нижче кодом, зробіть це:

  1. Поставте свій пакет NAME у відповідність словам applicationId "com.YOUR_PACKAGE_HERE"

  2. Синхронізуйте свій проект (Ctrl + alt + v) та складіть заново.

Це код файлу buid.gradle (Модуль: додаток), який працював на мене:

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'

6

Така ж ситуація була і з попередніми версіями. Прикро, що нові версії бібліотек com.google.android.gms завжди випускаються перед плагіном, і використовувати нову версію неможливо, оскільки вона несумісна зі старим плагіном. Я не знаю, чи потрібен тепер плагін (відсмоктує документи Google). Я пам’ятаю часи, коли цього не було. Єдиний спосіб - це дочекатися нової версії плагіна, або ви можете спробувати усунути залежності плагіна, але, як я вже сказав, я не впевнений, чи не працюватиме gcm без нього. Що я знаю, головна особливість версії 9.2.0 - це новий API обізнаності https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , якщо він вам не потрібен, ви можете використовувати 9.0. Версія 0 без проблем.


Ага, іди фігурка. Оскільки жодної документації не вказано інакше, я припускав, що новіші версії розгортаються із необхідним плагіном. 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у своєму додатку-модулі та перепишіть нижче рядка після блоку залежностей. Це дозволяє плагіну визначати, яку версію Play-сервісів ви використовуєте

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

Я взяв цю ідею звідси . У цьому підручнику другий пункт говорить про те, що вище вбудований рядок плагіна знаходиться внизу вашого app/build.gradleфайлу, щоб не вводилося зіткнення залежностей. Сподіваюся, це допоможе вам.


Чому ви повторюєте відповіді, які були дані півроку тому?
Бевор

2

Для Кордова АБО Ionic Hybrid App

У мене дуже схожа проблема з моїм Ionic 1 Cordova Build після інтеграції хмарних повідомлень Firebase (FCM)

Я вирішив це питання наступними кроками

Отже, одне виправлення буде: всередині платформи / android open 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

Додайте цей рядок у нижній частині граді.

застосувати плагін: 'com.google.gms.google-services'

тому що вгорі це не працює. Я зіткнувся з подібною проблемою.


1

якщо у вас також включено Firebase, зробіть їх такою ж версією, як і помилка.


0

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


-1

Можливо, ціль SDKможе бути вище, ніж SDKу пристрою. Змініть це. Наприклад, у вашому пристрої працює API 23, але ваша ціль SDK- 25. Змініть 25 на 23.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.