com.google.android.gms: różne inne biblioteki żądają-usług-pomiarów-zabaw


173

Zaktualizowałem do gradle 4.0.1 i zacząłem otrzymywać następujący błąd

Biblioteka com.google.android.gms: play-services-measurement-base jest wymagana przez różne inne biblioteki pod adresem [[15.0.4,15.0.4]], ale rozwiązuje się to do 15.0.2. Wyłącz wtyczkę i sprawdź drzewo zależności za pomocą ./gradlew: app: dependencies.

Mój projekt nie używa tej zależności, więc szukałem go globalnie i pojawia się tylko w środku

build / interactates / lint-cache / maven.google / com / google / android / gms / group-index.xml

jak ta linia

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

Próbowałem więc usunąć folder kompilacji i wyczyścić projekt, ale generuje go ponownie z tymi samymi wartościami: / stąd błąd nadal pozostaje


Rozwiązanie tutaj: ja też napotkałem ten sam problem, próbując dodać crashlytics do Firebase. Proszę zaktualizować najnowszą wersję zależnościami dla com.google.android.gms: Play-usług i com.google.firebase: ...... . To automatycznie rozwiąże problemy
Priya Rajan

Miałem najnowszą wersję i otrzymałem ten błąd, więc obniżyłem do 15.0.1 i zadziałało!
landrykapela

Przejdź do tego numeru i oznacz go gwiazdką. Wydaje się, że jest wiele problemów, ponieważ było wiele niepublikowanych bibliotek z jCenter.
Patricio Sard

Odpowiedzi:


173

Rzeczywisty problem omówiono w informacji o wydaniu z 23 maja https://developers.google.com/android/guides/releases#may_23_2018

Zasadniczo musisz podbić wszystkie biblioteki Play Services i Firebase do ich najnowszej wersji ( która może być inna dla każdej wersji od wersji 15 ). Możesz użyć https://mvnrepository.com/, aby znaleźć najnowszą wersję dla każdej biblioteki.

Zobacz też: https://firebase.google.com/support/release-notes/android#20180523


5
Witryna maven.google.com jest również odpowiednia do wyszukiwania wydanych wersji tych bibliotek.
PaulR

52
Ratownik. Google powinien usprawnić to wersjonowanie. To ból
Dibzmania

1
Twoja odpowiedź pomogła mi to zrozumieć. Ale musiałem użyć tego posta, aby faktycznie pobrać prawidłowe wersje zawarte w moim projekcie i ominąć błędy.
Jacob Joel,

12
Użyłem najnowszej wersji wszystkich bibliotek, ale błąd pozostaje.
Student,

2
Jeśli zaktualizujesz wszystkie biblioteki do ich najnowszych, odpowiednich wersji, pojawi się ostrzeżenie „Wszystkie biblioteki gms / firebase muszą używać dokładnie tej samej specyfikacji wersji (mieszanie wersji może prowadzić do awarii środowiska wykonawczego)”. Czy jest to oczekiwane? Jak rozwiązać ten i pierwotny problem?
user3369427

86

jedyne działające rozwiązanie dla mnie:

umieść go na dole pliku build.gradle

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

10
Dla mnie to rozwiązanie ukrywa komunikat, który jest następnie wywoływany w inny sposób: „Zależność Androida 'com.google.android.gms: play-services-measurement-base' ma inną wersję dla kompilacji (15.0.4) i runtime ( 16.0.0). Ścieżka klasy. Tę samą wersję należy ustawić ręcznie za pomocą DependencyResolution ”
ARLabs

To jedyne rozwiązanie, które u mnie zadziałało. Nawet przy wszystkich aktualnych bibliotekach Gradle.
Neri

Działa, ale używaj go w ostateczności. Zsynchronizowałem wszystkie wersje Google Play i Firebase, ale jedna biblioteka odmówiła przyjęcia tej wersji (została zakodowana, aby wymagać jednej i tylko jednej określonej wersji).
pmont

Oto żart Firebase Android SDKs now have independent version numbers, allowing for more frequent, flexible updates..
Kimi Chiu

18
to jest najgorsze, co można zrobić; ignorowanie problemu nie jest „rozwiązaniem”.
Martin Zeitler

31

Upewnij się, że Twoje zależności usług Google Play i Firebase są w najnowszej wersji.

Sprawdź również wszystkie swoje pliki gradle, poziom modułu i poziom projektu, musi istnieć tylko jedna wspólna wersja zależności we wszystkich modułach. Można rozwiązać, zachowując te wersje w zmiennej oceny na poziomie projektu.

Sprawdź tutaj wersję aktualizacji usług Google Play

Najnowsze usługi Google Play

Sprawdź tutaj zaktualizowaną wersję Firebase

Najnowsze Firebase

Sprawdź tutaj zaktualizowaną wersję Firebase dla Androida

Najnowsze Firebase na Androida


to było przydatne. Korzystając z react-native i musiałem zaktualizować pakiety, których używaliśmy, do najnowszych w tych linkach.
publikacja

Może się to zdarzyć, nawet jeśli polegasz tylko na jednej bibliotece Google! Zobacz moją odpowiedź, dlaczego (bardzo stara wtyczka Android Gradle).
NateS

13

ja zaktualizowałem

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

i to działa dla mnie


1
Dziękuję Ci. Zrobiłem to samo, działa bardzo dobrze.
Nguyễn Anh Tuấn

1
gdzie muszę umieścić tę linię?
Anand_5050

w android / app / build.gradle @ Anand_5050
Swati

9

zmiana mojego build.gradlena następujący działała dla mnie:

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"
        }
      }
  }
}

dziękuję, pomogło mi i rozwiązało mój błąd. co najmniej wskazał mi kierunek kolejnych błędów, które umieściłem w tej samej rozdzielczości
duńska

Aby wyjaśnić, chodzi o dodanie ext {...}bloku, aby wymusić wersję, która rozwiązuje problem
Aaron

7

W moim przypadku użycie najnowszych wersji następujących dependenciesrozwiązało mój problem:

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

5

Może się to zdarzyć, jeśli Twoja wtyczka Android Gradle jest bardzo stara, nawet jeśli używasz tylko jednej biblioteki Google! Najwyraźniej wszystkie biblioteki Google musiały być dokładnie tą samą wersją. Teraz nie muszą być takie same, tylko najnowsze. Podczas określania nawet jednej biblioteki pobiera zależności, w których wersje nie pasują, a stara wtyczka Android Gradle rzygnie.

Ustaw nowszą wersję, na przykład:

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

Być może będziesz musiał zaktualizować Gradle, aby korzystać z nowszej wtyczki (o tym poinformuje).


3

Jedynym rozwiązaniem, które działa dla mnie (znalazłem gdzieś w SOF) (nie mam linku) jest:

w top main 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
teraz otrzymuję inny błądThe 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.
Eric Kim

3

Dodaj do listy swoich zależności. Teraz trzeba go mieć, aby poprawnie działały wszystkie zależności Firebase:

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

3

Miałem ten sam problem

Upewnij się tylko, że masz najnowsze wersje wszystkich zależności. Użyłem aktualnych wersji Firebase core i auth. Nowsze wersje zawierają poprawki błędów.

Najnowsze wersje można pobrać stąd: https://firebase.google.com/support/release-notes/android

Korzystając z najnowszej wersji w bieżącym momencie:

w app / build.gradle:

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

3

Podobny problem pojawił się ze mną, gdy próbowałem dodać bazę danych Firebase do mojego projektu.

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

Problem można rozwiązać, obniżając lub aktualizując obie wersje do podobnego poziomu. Więc obniżyłem bazę danych Firebase do

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

i zadziałało! Wszystkie dostępne wersje można przeszukiwać na tej stronie: https://mvnrepository.com/


1
Pracowałem dla mnie po przeszukaniu wielu artykułów. Nadchodził błąd podczas dodawania bazy danych Firebase. Dziękuję
gauravsngarg

2

Bibliotekę pobierającą tę zależność można znaleźć za pomocą:

$ ./gradlew app:dependencies

3
To nie działa, po prostu wypluwa ten sam błąd bez wykresu zależności.
jasonhudgins

3
musisz usunąć Apply plugin: wiersz „com.google.gms.google-services”, zanim spróbujesz tego uniknąć, aby uniknąć wyświetlania błędu
Kata Lune

1
Wyłączyłem wtyczkę i sprawdziłem zależności. Ale nie było żadnej biblioteki, która byłaby zależna od 15.0.4, jak stwierdzono w wyjątkuThe 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 miałem dokładnie ten sam problem. Obniżamy zarówno play-services-analyticsi firebase-coreaby 16.0.0rozwiązać ten problem.
NoHarmDan

Ten nowy system różnych wersji dla biblioteki Firebase to na razie tragedia. Wczoraj mieliśmy awarię w app losowe początku, ponieważ nie był w stanie Firebase init () z jakiegoś dziwnego powodu ... musieliśmy wyłączyć (w manifeście) Firebase-perf, aby móc usunąć awarii
miszmaniac

2

Wystąpił błąd 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.

Uruchomienie ./gradlew :app:dependenciesujawni, które zależności wymagają niewłaściwych zależności (te w nawiasach kwadratowych). Dla mnie problem pochodził z firebase-core: 16.0.3, jak pokazano poniżej. Naprawiłem to, obniżając wersję firebase-core do 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

U mnie ten błąd pojawił się po integracji Crashlytics przez Firebase, z powodu konfliktu wersji między

implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.android.gms:play-services-location:15.0.1'

Najpierw próbowałem obniżyć Firebase Core do 15.0.1, ale wygląda na to, że nie ma takiej wersji, tylko 15.0.0i 15.0.2! Zamiast tego musiałem obniżyć obie wersje do wersji 15.0.0, więc skończyło się na

implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.android.gms:play-services-location:15.0.0'

Więc teraz działa, ale dostaję te irytujące ostrzeżenia Linta o dostępnych nowszych wersjach. Ta porażka wersjonowania to cholerny bałagan.


1

Wpadłem na ten problem i zauważyłem, że informacje o wydaniu wspominały:

Firebase wymaga teraz, aby plik oceny aplikacji wyraźnie wskazywał com.google.firebase: firebase-core jako zależność, aby usługi Firebase działały zgodnie z oczekiwaniami.

Utworzenie firebase-corezależności aplikacji (a także zależności od biblioteki) rozwiązało ten problem.


1

1. Otwórz build.gradle na poziomie projektu

Zaktualizuj com.google.gms:google-serviceswersję do najnowszej. Śledź najnowsze wydanie . W chwili udzielenia odpowiedzi najnowszy jest 4.1.0.

2. Otwórz build.gradle na poziomie aplikacji

Zaktualizuj poniżej zależność, jeśli używasz dowolnego. Pamiętaj, że Firebase ma teraz indywidualne wersje dla każdej zależności.

Użyj najnowszych bibliotek Firebase . W chwili udzielenia odpowiedzi najnowsze wersje znajdują się poniżej.

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

Synchronizuj i buduj ...


1

Zauważyłem, że dzienniki debugowania wspominają o starej wersji Firebase-analytics (16.0.0). Dodanie jawnie najnowszej wersji rozwiązało problem:

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

1

Zaktualizuj wszystkie zależności do najnowszej wersji, a to naprawi problem.

Nie trzeba dodawać
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

Doprowadzi to do awarii, jeśli używasz wersji mieszanych.


1

Domyślam się, że następujący błąd jest spowodowany różnymi wersjami zależności Firebase. Dla mnie zmiana wersji wszystkich zależności, które wdrażam w moim projekcie na 16.0.1, działała jak marzenie.

U mnie błąd utworzyła linia: com.google.firebase:firebase-auth:16.0.2

I zmieniłem to na: com.google.firebase:firebase-auth:16.0.1

I zadziałało ... Mam nadzieję, że to pomoże.


1

W moim przypadku to rozwiązuje problem:

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

1

W moim przypadku zamieniłem plik build.gradle na tę linię

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

z

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

i dodał tę linię

implementation 'com.google.android.gms:play-services-location:15.0.0'

Teraz jest w porządku


1

Mam podobny problem, który został rozwiązany przez:

  1. Na poziomie aplikacji Gradle: zaktualizować wszystkie zależności Firebase do najnowszej wersji najnowszej
  2. W gradle na poziomie projektu: zaktualizuj zależność do najnowszej:, gms.google-servicesW moim przypadku było to: 'com.google.gms: google-services: 4.2.0'

w tym tkwi magia. Wszystkie zależności w app / build.gradle, a następnie w najwyższym pliku build.gradle aktualizują wszystkie zależności
leeCoder

1

Zmieniłem następujące zależności w moim projekcie, aby działało.

build.gradle (aplikacja):

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

do

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

build.gradle (aplikacja):

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

do

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

**** Uwaga :

Użyj poniższego linku, aby zaktualizować sposób korzystania z bibliotek, które mają zależności https://firebase.google.com/docs/android/setup


1

Używaj zaktualizowanej wersji Firebase i unikaj dodatków. To wystarczy (ale jeśli potrzebujesz wykorzystać przestrzeń dyskową lub ... powinieneś je również dodać)

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

i zaktualizuj usługi google:

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

Dziękuję, użycie tych wersji rozwiązało mój problem.
SriTeja Chilakamarri


0

Jeśli wiadomość to:

Biblioteka com.google.android.gms: play-services-measurement-base jest wymagana przez różne inne biblioteki pod adresem [[15.0.4,15.0.4]], ale rozwiązuje się to do 15.0.2 . Wyłącz wtyczkę i sprawdź drzewo zależności za pomocą ./gradlew: app: dependencies.

Zmiana wersji wszystkich używanych bibliotek usług Play na potrzebną ( w tym przypadku 15.0.2 ) może rozwiązać problem.

W moim przypadku zmieniłem:

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

Rozwiązanie tutaj: ja też napotkałem ten sam problem, próbując dodać crashlytics do Firebase. Proszę zaktualizować najnowszą wersję zależnościami dla com.google.android.gms: Play-usług i com.google.firebase: ...... . Automatycznie rozwiązuje problemy


0

Miałem ten sam problem, gdy próbowałem dodać implementację bazy danych firebase, jeśli skomentowałem tę linię, to działa, więc po kilku próbach wszedłem na https://firebase.google.com/docs/android/setup

Tam sprawdziłem wersje dostępnych bibliotek, a mój firebase-core był na 16.0.1 (aktualna wersja to 16.0.4), więc ręcznie go zmieniłem i działało dobrze, kompilacja i synchronizacja zakończyły się sukcesem.


0

W moim przypadku po prostu usuwam

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

i dodaj zależności reklam Firebase

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

0

Miałem ten sam problem. Musisz usunąć dwukropek: po wersji w gradle (to błąd).

Te ustawienia zadziałały dla mnie:

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

Ustaw również multiDexEnabled na true w gradle (jeśli pojawi się błąd DexOverflowException):

    android {
        compileSdkVersion 27
..
            multiDexEnabled true
        }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.