Android Studio - typ programu już obecny: com.google.android.gms.internal.measurement.zzwp

90

Wczoraj moja aplikacja działała poprawnie.

Dziś nie wiem dlaczego, po ponownym otwarciu Android Studio aplikacja nie była już kompilowana.

Wyświetlany błąd to

Program type already present: com.google.android.gms.internal.measurement.zzwp
Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzwp, sources=[Unknown source file], tool name=Optional.of(D8)}

Naprawdę nie wiem, co się dzieje, przeszukałem wszystko i nic nie działało. Gdyby ktoś mógł mi pomóc, byłbym wdzięczny. Zmieniam wszystkie zależności i biblioteki, aby spróbować to rozwiązać, ale nic nie działało.

Oto projekt build.gradle

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

A to jest mój moduł build.gradle: aplikacja

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.doctordirectory"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    implementation fileTree(dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

    implementation ('com.facebook.android:audience-network-sdk:4.28.0',{
        exclude group: 'com.google.android.gms'
    })
    implementation 'com.facebook.android:facebook-login:4.32.0'
    implementation 'com.android.support:multidex:1.0.3'

    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

    implementation 'com.android.support:support-v4:27.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.google.firebase:firebase-core:15.0.0'
    implementation 'com.google.firebase:firebase-database:15.0.0'
    implementation 'com.google.firebase:firebase-crash:15.0.0'
    implementation 'com.google.firebase:firebase-auth:15.0.0'
    implementation 'com.google.firebase:firebase-storage:15.0.0'
    implementation 'com.firebaseui:firebase-ui-database:3.3.1'

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

    implementation 'com.android.support:cardview-v7:27.1.0'
    implementation 'com.android.support:recyclerview-v7:27.1.0'

    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

    implementation 'com.stepstone.apprating:app-rating:2.2.0'
    implementation 'com.android.support:design:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    implementation 'com.github.lguipeng:BubbleView:1.0.1'

    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

    implementation 'com.miguelcatalan:materialsearchview:1.4.0'

    implementation 'com.github.MdFarhanRaja:SearchableSpinner:1.9'

    implementation 'com.github.sillebille:dynamic-calendar:1.0.1'

    implementation 'com.google.api-client:google-api-client:1.22.0'
    implementation 'com.google.api-client:google-api-client-android:1.22.0'
    implementation 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'
}

apply plugin: 'com.google.gms.google-services'
Caio Araújo
źródło
2
To musi być powód, dla którego ludzie nie lubią zależności automatycznej aktualizacji ...
user253751
1
@immibis Nie rozumiem. Czy chodziło Ci o to, że Firebase aktualizuje się automatycznie, mimo że wspomnieliśmy o konkretnych wersjach?
rpattabi

Odpowiedzi:

95

Rozwiązano ten problem po zaktualizowaniu firebase dependenciesdo najnowszego, na przykład w com.google.firebase:firebase-core:15.0.0celu com.google.firebase:firebase-core:15.0.2 pobrania najnowszej listy stąd

Wszystkie inne zmiany wprowadzone na poniższej liście

  dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support:customtabs:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

        implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

        implementation 'com.facebook.android:audience-network-sdk:4.28.0'
        implementation 'com.facebook.android:facebook-login:4.32.0'
        implementation 'com.android.support:multidex:1.0.3'

        implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'

        implementation 'com.android.support:support-v4:27.1.1'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

        implementation 'com.google.firebase:firebase-core:15.0.2'
        implementation 'com.google.firebase:firebase-database:15.0.0'
        implementation 'com.google.firebase:firebase-crash:15.0.2'
        implementation 'com.google.firebase:firebase-auth:15.0.0'
        implementation 'com.google.firebase:firebase-storage:15.0.2'
        implementation 'com.firebaseui:firebase-ui-database:3.3.1'

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

        implementation 'com.android.support:cardview-v7:27.1.1'
        implementation 'com.android.support:recyclerview-v7:27.1.1'

        implementation 'com.squareup.picasso:picasso:2.5.2'
        implementation 'com.squareup.retrofit2:retrofit:2.3.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

        implementation 'com.stepstone.apprating:app-rating:2.2.0'
        implementation 'com.android.support:design:27.1.1'
        implementation 'com.github.lguipeng:BubbleView:1.0.1'

        implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

        implementation 'com.miguelcatalan:materialsearchview:1.4.0'

        implementation 'com.github.MdFarhanRaja:SearchableSpinner:1.9'

        implementation 'com.github.sillebille:dynamic-calendar:1.0.1'

        implementation 'com.google.api-client:google-api-client:1.22.0'
        implementation 'com.google.api-client:google-api-client-android:1.22.0'
        implementation 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'
    }

2) Na najwyższym poziomie aktualizacja pliku build.gradle z classpath 'com.google.gms:google-services:3.1.1doclasspath 'com.google.gms:google-services:3.2.1

MJM
źródło
5
To rozwiązanie działa. Firebase rozprowadza teraz swoje pakiety z niezależnymi numerami wersji, upewnij się, że wszystkie pakiety na build.gradle są najnowszymi.
Tri Nguyen
Zadziałało. Dziękuję bardzo. Próbowałem coś zaktualizować, ale nigdy nie wyobrażałem sobie, że Firebase to zmieni. Dziękuję Ci.
Caio Araújo
Dobrze, że zredagowałeś i dodałeś drugą część mojej odpowiedzi, ponieważ twoja odpowiedź została zaakceptowana;)
Ragaisis
m też ma inny rodzaj problemu "Typ programu już obecny: org.apache.http.io.HttpMessageParser Wiadomość {kind = BŁĄD, tekst = Typ programu już obecny: org.apache.http.io.HttpMessageParser, sources = [Nieznane źródło file], nazwa narzędzia = Optional.of (D8)}, "m korzystam z najnowszej wersji firebase i najnowszej wersji wsparcia, bibliotek projektowych, a także build.gradle mojego projektu zawiera ścieżkę klasy 'com.android.tools.build:gradle:3.1 .2 „classpath” com.google.gms: google-services: 4.0.0 ”, nadal występuje problem ..
niezmienny
1
Z biegiem czasu zauważyłem, że najlepszym rozwiązaniem jest zaktualizowanie tych zależności do najnowszej wersji, która pojawia się NA ICH WITRYNIE, a nie najnowszej, która pojawia się w pliku gradle
Razvan
21

Mam również ten błąd i moje rozwiązanie tego problemu

1) Zaktualizuj wersję Firbase, aby była niezależna od wersji usług Google Play

implementation "com.google.firebase:firebase-messaging:15.0.2"

Możesz sprawdzić najnowszą wersję tutaj https://firebase.google.com/support/release-notes/android#latest_sdk_versions

2) W aktualizacji pliku build.gradle najwyższego poziomu usługi Google z wersji 3.1.1 do 3. 2 .1

buildscript {
    dependencies {

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

    }
 }
Ragaisis
źródło
12

Po prostu się zmieniam

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

do

implementation 'com.google.firebase:firebase-crash:15.0.2'

to działa.

Richard Hsieh
źródło
7

Firebase jest powodem, dla którego aktualizują numery wersji, tak jakby nie dbali o programistów.

Najpierw najważniejsze. Zaktualizuj ścieżkę klas w gradacji na poziomie projektu

dependencies {

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

    }

Następnie, niezależnie od narzędzi, których możesz używać, takich jak analityka, linki dynamiczne i tak dalej. Użyj odpowiedniej zależności z wersjami.

https://firebase.google.com/support/release-notes/android

W moim przypadku używałem testów A / B przez zdalną konfigurację, więc muszę go zaktualizować z

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

do

implementation 'com.google.firebase:firebase-config:15.0.2'

To powinno działać bez żadnych usterek. Prosimy również o publikowanie tego rodzaju problemów w Firebase, aby nie wprowadzali tego rodzaju zmian bez uprzedzenia lub bez odpowiedniej dokumentacji.

Ashok Kumar S.
źródło
2
„Firebase jest powodem, dla którego aktualizują numery wersji, jakby nie dbali o programistów”. Ładnie powiedziane 👌
Lenin Raj Rajasekaran
6

Zaktualizuj zależności Firebase.

1. Build.gradle na poziomie projektu

Zaktualizuj google.gmswersję do najnowszej. Śledź najnowsze wydanie . W chwili odpowiedzi najnowszy jest 4.1.0.

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.1.0' // google-services plugin
    }
}

allprojects {
    // ...
    repositories {
        // ...
        google() // Google's Maven repository
    }
}

2. 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żywaj 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

3. Nie zapomnij o wtyczce Google

Nie zapomnij również dodać apply plugin: 'com.google.gms.google-services'build.gradle na dole poziomu aplikacji.

Synchronizuj i buduj ...

Khemraj
źródło
1
Niezłe wskazówki dotyczące sprawdzania najnowszych wersji. Wolę używać bintray.com/android/android-tools/…, aby sprawdzić najnowszą wersję google-services. Strona mvn jest bardzo myląca z jej sekcjami Centrali Springs Plugins.
Sébastien
5

Usuń zależność zawierającą „com.google.android.gms”, a następnie spróbuj odbudować projekt ... musisz nacisnąć i spróbować, bo jest tam pewna zależność, która używa dwukrotnie

Na przykład com.android.support:designdodany twise

Arul Harsh
źródło
4

Stało się to ze mną po dodaniu ostatniej wersji firebase analitycs, w ten sposób

implementation "com.google.firebase:firebase-core:16.0.5"

pomogła zmiana wersji na 16.0.4

implementation "com.google.firebase:firebase-core:16.0.4"
snersesyan
źródło
2

Dla mnie problem wydawał się być spowodowany przez narzędzia do budowania Androida

Aby to naprawić, musiałem obniżyć te w projektach mu do najwyższego poziomu build.gradle pliku

-        classpath 'com.android.tools.build:gradle:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'

Zdaję sobie sprawę, że to nie jest najlepsze rozwiązanie, ale jak dotąd jedyna rzecz, która działała na mnie.

EDYCJA: Alternatywnie dodaj android.enableD8=falsedo gradle.propertiespliku projektu

RWIL
źródło
2

Skomentowanie następującej zależności rozwiązało problem:

implementation 'com.google.android.gms:play-services-analytics::16.0.7'
Patrick Goley
źródło
2
allprojects {
    repositories {
    //start here
    configurations.all {
 resolutionStrategy.eachDependency { DependencyResolveDetails details ->
   def requested = details.requested
       if (requested.group == 'com.google.android.gms') {
          details.useVersion '12.0.1'
       }
       if (requested.group == 'com.google.firebase') {
          details.useVersion '12.0.1'
         }
       }
     }
    //end
     jcenter()
       maven {
         url "https://maven.google.com"
       }
     }
 }
lakshman bodduluru
źródło
1

Ok, chwileczkę. Po sprawdzeniu, że nie wszystkie biblioteki Firebase potrzebują tej wersji. Wersje są teraz źle wyrównane. W rzeczywistości na oficjalnej stronie donosi, że niektórzy mają 15.1.0 zamiast 15.0.2;

Może zobacz bezpośrednio tutaj, czy może to być przydatne:

https://firebase.google.com/docs/android/setup

AlexPad
źródło
0

Jeśli napotkasz inne problemy, które blokują kompilację, spróbuj zaktualizować zależność usług Google do wersji 3.2.0 . Dla mnie przynajmniej 3.2.1 i 3.3.0 powodowały problemy, a 3.2.0 był tym, który działał.

najm
źródło
ale myślałem, że 3.2.1 jest wymagane do kompilacji crashlytics?
j2emanue
@ j2emanue Osobiście nie używam Crashlytics, więc nie mogę potwierdzić, ale zarówno 3.2.1, jak i 3.3.0 zapobiegały kompilacji innych zależności.
najm