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

Ilja
źródło
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

Nico
źródło
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
htw
źródło
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

abitcode
źródło
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

Amine M'hamed
źródło
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"
        }
      }
  }
}
mk7danny
źródło
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'
Murat
źródło
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).

NateS
źródło
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"
            }
        }
    }
}
issamux
źródło
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'
PavelGP
źródło
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'
}
Shellym
źródło
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/

Harshit Agarwall
źródło
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
Nico
źródło
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
Eric Kim
źródło
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.

Magnus W
źródło
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.

Berbeć
źródło
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 ...

Khemraj
źródło
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"
smok
źródło
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.

RakeshGupta
źródło
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.

Vipin George
źródło
1

W moim przypadku to rozwiązuje problem:

implementation 'com.google.android.gms:play-services-analytics:16.0.1'
Kishore Reddy
źródło
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

Maddu Swaroop
źródło
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'
tabebqena
źródło
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

Muhammad Ali
źródło
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'
sana ebadi
źródło
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'
Jose Q
źródło
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

Priya Rajan
źródło
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.

Anibal
źródło
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'
code4rox
źródło
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
        }
miłość na żywo
źródło