com.google.android.gms: play-services-measurement-base запитують різні інші бібліотеки


173

Я оновився до gradle 4.0.1 і почав отримувати наступну помилку

Бібліотека com.google.android.gms: play-services-measurement-base запитується різними іншими бібліотеками за адресою [[15.0.4,15.0.4]], але дорівнює 15.0.2. Вимкніть плагін і перевірте дерево залежностей за допомогою ./gradlew: app: залежності.

Мій проект не використовує цю залежність, тому я шукав її в глобальному масштабі, і вона з’являється лише всередині

build / проміжні продукти / lint-cache / maven.google / com / google / android / gms / group-index.xml

як ця лінія

<play-services-measurement-base versions="15.0.0,15.0.2"/>

Тому я спробував видалити свою папку збірки та очистити проект, але він відновлює її з тими ж значеннями: / отже, помилка все ще залишається


Тут вирішено: я теж зіткнувся з тією ж проблемою, коли намагався додати крашміти в Firebase. Будь ласка , поновіть останню версію залежностей для com.google.android.gms: стикові послуг і com.google.firebase: ...... . Це автоматично вирішить проблеми
Priya Rajan

У мене була остання версія, і ця помилка була знижена до 15.0.1, і вона спрацювала!
landrykapela

Перейдіть до цього питання та позначте його зірочкою. Здається, є багато проблем, тому що було багато бібліотек, не опублікованих у jCenter.
Патрісіо Сард

Відповіді:


173

Актуальна проблема обговорюється у примітці до випуску https://developers.google.com/android/guides/releases#may_23_2018 від 23 травня.

По суті, вам потрібно зібрати всі бібліотеки Play Services та Firebase до їх останньої версії ( яка може бути різною для кожної з версії 15 ). Ви можете скористатися https://mvnrepository.com/, щоб знайти останню версію для кожної бібліотеки.

Дивіться також: https://firebase.google.com/support/release-notes/android#20180523


5
maven.google.com також підходить для пошуку випущених версій цих бібліотек.
PaulR

52
LifeSaver. Google має впорядкувати цю версію. Це біль
Дібзманія

1
Ваша відповідь допомогла мені зрозуміти це. Але мені довелося скористатися цією публікацією, щоб насправді отримати правильні версії, включені в мій проект, і пройти помилки.
Якоб Джоел

12
Я використовував останню версію всіх бібліотек, але помилка залишається.
Студент

2
Якщо ви оновите всі бібліотеки до їх останніх відповідних версій, ви отримаєте попередження, в якому сказано: "Усі бібліотеки gms / firebase повинні використовувати точно таку ж специфікацію версії (змішування версій може призвести до збоїв часу виконання)". Це очікується? Як ви вирішите це , а також первісну проблему?
користувач3369427

86

єдине робоче рішення для мене:

покладіть його на дно build.gradle

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

10
Для мене це рішення приховує повідомлення, яке потім піднімається іншим способом: "Залежність від Android" com.google.android.gms: play-services-measurement-base "має різну версію для компіляції (15.0.4) та часу виконання ( 16.0.0) classpath. Вам слід вручну встановити ту саму версію через DependencyResolution "
ARLabs

Це єдине рішення, яке працювало на мене. Навіть з усіма сучасними бібліотеками gradle.
Нері

Це працює, але використовувати його в крайньому випадку. Я синхронізував усі версії Google Play та Firebase, але одна бібліотека відмовилася прийняти цю версію (було жорстко закодовано одну і лише одну конкретну версію).
пмонт

Ось жарт, Firebase Android SDKs now have independent version numbers, allowing for more frequent, flexible updates..
Кімі Чіу

18
це найгірше, що можна зробити; ігнорування проблеми не є "рішенням".
Мартін Цайтлер

31

Не забудьте зберегти залежності від служб Google Play та залежність Firebase до останньої версії.

Також перевірте всі файли gradle, рівень модулів та рівень проекту, для всіх модулів має бути лише одна загальна версія залежності. Можна вирішити, зберігаючи ці версії в змінній gradle рівня проекту.

Ознайомтесь з версією оновлення служб Google Play

Служби Google Play Останні

Ознайомтесь із оновленою версією Firebase

Firebase Останні

Ознайомтесь з оновленою версією Firebase для Android

Firebase Android Latest


це було корисно. Використовуючи рідну реакцію та довелося оновлювати пакети, які ми використовували, щоб отримати останні посилання в цих посиланнях.
publicknowledge

Це може статися, навіть якщо ви залежите лише від однієї губки Google! Дивіться мою відповідь, чому (дуже старий плагін Android Gradle).
NateS

13

Я оновив

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

і це працює для мене


1
Дякую. Я зробив те саме, це дуже добре працює.
Nguyễn Anh Tuấn

1
де мені потрібно поставити цю лінію?
Anand_5050

в android / app / build.gradle @ Anand_5050
Swati

9

змінивши моє 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"
        }
      }
  }
}

дякую, мені це було корисно і вирішило мою помилку. atleast дав мені вказівку на наступні помилки, які я поставив їх у тій самій резолюції Стратегії
датський

Для уточнення, додавання ext {...}блоку змушує версію, яка виправляє проблему
Аарон

7

У моєму випадку за допомогою останніх версій наступного dependenciesвирішено мою проблему:

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

5

Це може статися, якщо ваш плагін Android Gradle дуже старий, навіть якщо ви використовуєте лише одну вкладиш Google! Мабуть, всі губи Google повинні були бути точно такої ж версії. Тепер їм не потрібно бути однаковими, лише останніми. Вказуючи навіть одну лібу, вона втягується в залежності, коли версії не збігаються, і старий плагін Android Gradle тягне.

Встановіть новішу версію, наприклад:

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

Можливо, вам знадобиться оновити Gradle, щоб використовувати новіший плагін (він вам скаже).


3

Єдине рішення, яке працює для мене (знайдено десь у SOF) (не маю посилання):

вгорі головний 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"
            }
        }
    }
}

3
тепер я отримую іншу помилкуThe library com.google.firebase:firebase-analytics is being requested by various other libraries at [[16.0.3,16.0.3]], but resolves to 16.0.1. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.
Ерік Кім

3

Додайте до списку своїх залежностей. Тепер потрібно мати його для належної роботи всіх залежностей від базі даних:

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

3

У мене було те саме питання

Просто переконайтеся, що у вас є останні версії усіх залежностей. Я використовував поточні версії для Firebase core та auth. Новіші версії мають виправлення помилок.

Отримати останні версії можна тут: https://firebase.google.com/support/release-notes/android

Використання останньої версії в поточний момент часу:

у програмі / build.gradle:

dependencies {
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-auth:16.1.0'
}

3

Аналогічне питання виникло і у мене, коли я намагався додати базу даних 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/


1
Працював для мене після пошуку багатьох статей. Помилка під час додавання бази даних firebase. Дякую
gauravsngarg

2

Ви можете знайти бібліотеку, яка тягне цю залежність, використовуючи:

$ ./gradlew app:dependencies

3
Це не працює, він просто виписує ту саму помилку без графіка залежності.
jasonhudgins

3
вам потрібно видалити застосувати плагін: рядок 'com.google.gms.google-services', перш ніж спробувати це, щоб уникнути помилки
Kata Lune

1
Я відключив плагін і перевірив залежності. Але не було жодної бібліотеки, яка мала б залежність від 15.0.4, як зазначено у виняткуThe library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[15.0.4,15.0.4], [16.0.0,16.0.0]], but resolves to 16.0.0.
miszmaniac

1
@miszmaniac У мене була точно така ж проблема. Відкат як play-services-analyticsі firebase-coreдля 16.0.0вирішити цю проблему.
NoHarmDan

Ця нова система нерівних версій для бібліотеки Firebase наразі є трагедією. Вчора у нас сталася випадкова аварія при запуску програми, тому що firebase з незрозумілої причини не зміг init () ... нам довелося вимкнути (в маніфесті) firebase-perf, щоб мати змогу видалити аварію
miszmaniac

2

У мене була помилка 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 до 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

2

Для мене ця помилка з’явилася після інтеграції Crashlytics через Firebase, через конфлікт між версіями

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, але, здається , такої версії немає, тільки 15.0.0і 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 про новіші версії, які доступні. Цей дебакл версій - це безладдя.


1

Я наткнувся на цю проблему і помітив, що згадуються ноти до випуску :

Тепер Firebase вимагає, щоб файл Gradle програми явно перераховував com.google.firebase: firebase-core як залежність, щоб сервіси Firebase працювали так, як очікувалося.

Здійснення firebase-coreзалежності від програми (як і залежність від бібліотеки) вирішило цю проблему для мене.


1

1. Відкритий рівень проекту build.gradle

Оновіть com.google.gms:google-servicesверсію до останньої. Відстежте останню версію . На момент відповіді останнє є 4.1.0.

2. Відкрийте рівень програми build.gradle

Оновіть нижче залежність, якщо ви використовуєте будь-яку. Зауважте, що Firebase має індивідуальні версії для кожної залежності зараз.

Використовуйте останні бібліотеки Firebase . На момент відповіді останні версії наведені нижче.

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

Синхронізувати та створити ...


1

Я помітив, що в журналах налагодження згадується стара версія firebase-analytics (16.0.0). Додавши явно останню версію, виправлено проблему:

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

1

Оновіть усі свої залежності до останньої версії, і це виправить проблему.

Не потрібно додавати
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

Якщо використовувати змішані версії, це призведе до збоїв.


1

Я думаю, що наступна помилка викликана різними версіями залежностей від firebase. Для мене зміна версії всіх залежностей, які я реалізую над своїм проектом, на 16.0.1, працювала як шарм.

Для мене помилка була створена рядком: com.google.firebase:firebase-auth:16.0.2

І я змінив його на: com.google.firebase:firebase-auth:16.0.1

І це спрацювало .. Сподіваюся, що це допомагає.



1

У моєму випадку я замінив свій файл 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

У мене є аналогічне питання, яке вирішило:

  1. В рівні додатку Gradle: Оновлення всіх залежностей firebase до останньої версії останньої
  2. У проектному рівні gradle: оновіть залежність до останнього:, gms.google-servicesУ моєму випадку це було: 'com.google.gms: google-services: 4.2.0'

саме тут лежить магія. Усі залежності в додатку / build.gradle, а потім найвищий файл build.gradle оновлять усі залежності
leeCoder

1

Я змінив наступні залежності у своєму проекті, щоб змусити його працювати.

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'

**** Примітка :

Використовуйте наступне посилання для оновленого використання бібліотек, які мають залежності https://firebase.google.com/docs/android/setup


1

Використовуйте оновлену версію Firebase і уникайте додаткових дій. Цього достатньо (але якщо вам потрібно використовувати місце для зберігання або .., ви також повинні додати їх)

//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'

Дякую, за допомогою цих версій я вирішив мою проблему.
SriTeja Chilakamarri


0

Якщо повідомлення:

Бібліотека com.google.android.gms: play-services-measurement-base запитується різними іншими бібліотеками за адресою [[15.0.4,15.0.4]], але дорівнює 15.0.2 . Вимкніть плагін і перевірте дерево залежностей за допомогою ./gradlew: app: залежності.

Змінення версії всіх бібліотек служб відтворення, яку ви використовуєте, на потрібну ( у цьому випадку 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'

0

Тут вирішено: я теж зіткнувся з тією ж проблемою, коли намагався додати крашміти в Firebase. Будь ласка , поновіть останню версію залежностей для com.google.android.gms: стикові послуг і com.google.firebase: ...... . Це автоматично вирішить проблеми


0

У мене була така ж проблема, коли я намагався додати реалізацію бази даних firebase, якщо я коментував, що ця лінія працює, тож через кілька спроб я перейшов до https://firebase.google.com/docs/android/setup

Там я перевірив версії доступних бібліотек і мій Firebase-ядро був на рівні 16.0.1 (поточна версія - 16.0.4), тому я вручну змінив його, і він працював чудово, збірка та синхронізація були успішними.


0

У моєму випадку я просто видаляю

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

і додайте залежності рекламних баз

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

0

Мав те саме питання. Ви повинні видалити двокрапку: після версії в градусі (це помилка).

Ці налаштування працювали для мене:

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

Також встановіть multiDexEnabled на true у градусі (якщо ви отримаєте помилку DexOverflowException):

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