Aktualizacja konfliktu wersji do 8.4.0


197

Błąd :

Wykonanie nie powiodło się dla zadania „: app: processDebugGoogleServices”. Napraw konflikt wersji, aktualizując wersję wtyczki usług Google (informacje o najnowszej wersji są dostępne tutaj ) lub aktualizując wersję com.google.android.gms do 8.3.0.

Zrobiłem wszystkie rzeczy, które znalazłem.

  dependencies {
            // This does not break the build when Android Studio is missing the JRebel for Android plugin.
            classpath 'com.zeroturnaround.jrebel.android:jr-android-gradle:1.0.+'
            classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
            classpath 'com.google.gms:google-services:2.0.0-alpha3'

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

I w klasie aplikacji

    compile 'com.google.android.gms:play-services:8.4.0'

Odpowiedzi:


336

Użyj tych zależności dla projektu build.gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
    classpath 'com.google.gms:google-services:2.0.0-alpha3'
}

i umieść to na końcu pliku build.gradle na poziomie aplikacji (po zależnościach).

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

Nie mam pojęcia, dlaczego umieszczenie tego na końcu (a nie na początku) rozwiązuje błąd.

EDYCJA 5.01.2016

Ok… Więc próbuję położyć kres wszystkim problemom, z jakimi musieliście się mierzyć moje rozwiązanie

To moja ostatnia ocena na poziomie aplikacji

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "your-app-name"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    jcenter()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:design:23.1.1'
    compile 'com.mcxiaoke.volley:library:1.0.6@aar'
}

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

i to jest moja ostateczna ocena na poziomie projektu

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

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

allprojects {
    repositories {
        jcenter()
    }
}

Porównaj to z własnymi plikami stopni i dodaj lub zmodyfikuj wartości inne niż te, które napisałem.


4
compile 'com.google.android.gms:play-services-auth:8.4.0będzie również wymagane.
Shajeel Afzal,

2
Zawsze zastanawiam się, jak ludzie wpadają na takie rozwiązania. Wersja próbna i błąd? Święte zwoje?
A. Steenbergen

77
Dlaczego umieszczanie tego apply plugin: 'com.google.gms.google-services'na końcu pliku build.gradle działa, a umieszczanie go na początku kończy się niepowodzeniem?
toobsco42

8
Żadne z powyższych rozwiązań nie działa dla mnie w wersji 8.4.0. Wszystkie zawodzą po 2. „Odbuduj projekt”, który wykonuję po zapisaniu build.gradle. Pierwsza kompilacja działa (lub nie zawiedzie głośno), druga daje błąd około 8.3.0 vs 8.4.0. Korzystanie z „com.google.android.gms: play-services” zamiast pojedynczych osób nie powiodło się. Używanie (`classpath 'com.google.gms: google-services: 2.0.0-alpha3' ') nie powiodło się z innym błędem (w 2. wersji), więc używam 1.5.0. Używanie podglądu innego niż Studio nie miało znaczenia.
arberg

5
WAŻNE Nie zapomnij dodać pliku google-services.json! w przeciwnym razie nie powiedzie się komunikat „Brak pliku google-services.json w folderze głównym modułu”. Możesz utworzyć plik tutaj: developers.google.com/analytics/devguides/collection/android/v4 I jak mówią dokumenty, następnie dodasz ten plik do folderu projektu / aplikacji (czyli katalogu głównego modułu aplikacji).
Martin Pfeffer,

63

W module aplikacji (build.gradle)

W ruchu :

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

do ostatniej linii rozwiązał problem.


3
dla każdego, kto zastanawia się, dlaczego przesuwanie apply plugin:...wiersza do końca działa, dzieje się tak z tego powodu: „Ten krok wymaga, aby zastosowanie wtyczki: wiersz„ com.google.gms.google-services ”znajdowało się na dole pliku app / build.gradle dzięki czemu nie zostaną wprowadzone żadne kolizje zależności. Możesz zobaczyć wynik tego kroku, uruchamiając ./gradlew: app: dependencies. "
Tony Chan,

15

Wykonaj następujące czynności:

  1. Umieść następujące informacje w pliku build.gradle (plik stopni na poziomie aplikacji)

    dependencies {
          classpath 'com.android.tools.build:gradle:2.0.0-beta2'
          classpath 'com.google.gms:google-services:2.0.0-beta2'
    }

Sprawdź tutaj najnowszą wersję, ponieważ ciągle się zmienia.

  1. Jeśli pojawi się poniższy komunikat o błędzie, oznacza to, że należy zaktualizować opakowanie gradle do najnowszej wersji w gradle-wrapper.properties. Używam 2.10.

Wtyczka jest za stara, zaktualizuj ją do nowszej wersji lub ustaw zmienną środowiskową ANDROID_DAILY_OVERRIDE

  1. Umieść następujący wiersz na dole pliku build.gradle (plik stopni na poziomie modułu)

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

1
Dodanie linii pluginu Apply na DOLNYM moim buildie. Gradle naprawiło to dla mnie. Dzięki!
Panda4Man

Cieszę się, że postanowiłeś sprawdzić link do najnowszej wersji. Żadna z wersji z przyrostkiem beta nie działała dla mnie i nie miałem pojęcia, skąd ludzie biorą te wszystkie wersje. 2.12 w końcu dla mnie zadziałało.
Ryan H.,

7

Wydaje się, że zostało to naprawione w wersji 3.0.0 wtyczki usług Google (i wersji 9.0.0 biblioteki usług Google Play). Więc z tym

najwyższy poziom build.gradle

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle na poziomie aplikacji

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

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0
}

Krótka strona Uwaga: Jeśli aktualizujesz google-serviceswtyczkę do wersji 3.0.0, ponownie wygeneruj plik konfiguracyjny, ponieważ zawiera on nowe pola (wyjaśniono tutaj ).

Edycja (2016-06-20): Podczas gdy to się kompiluje i uruchamia, zauważyłem, że w logach kompilacji określa się umieszczenie wtyczki na dole pliku, w przeciwnym razie zostanie użyta domyślna wersja (9.0.0). Tak więc w powyższej sytuacji nie stanowi to problemu, ponieważ używam wersji 9.0.0, ale może to być problematyczne przy aktualizacji zależności. Oto dziennik:

google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used. please apply google-services plugin at the bottom of the build file.


5

Dla mnie działa tylko to:

Najwyższy poziom.

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'
}

Poziom aplikacji:

dependencies {
    compile 'com.google.android.gms:play-services-gcm:9.0.1'
    compile 'com.google.android.gms:play-services-location:9.0.1'
}

// should be at the bottom
apply plugin: 'com.google.gms.google-services'

1
zejście apply plugin: 'com.google.gms.google-services'na dół wykonało pracę w moim projekcie
Napoleon

powinno być na dole jest tutaj kluczowym czynnikiem
dr aNdRO

4

znalezione w oficjalnym przykładzie

w stopniu projektu

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

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

allprojects {
    repositories {
        jcenter()
    }
}

w klasie aplikacji

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.google.samples.quickstart.signin"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }

    // Resolve dependency differences between app and tests
    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:23.1.1'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'

    // Dependency for Google Sign-In
    compile 'com.google.android.gms:play-services-auth:8.4.0'

    // UiAutomatorTesting
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    androidTestCompile 'com.android.support:support-annotations:23.1.1'
}

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

1
Używanie alpha9działało dla mnie Gradle 2.11. Dziękuję Ci za to! Czy możesz podać link do oficjalnego przykładu, może jest to również pomocne w przypadku innych problemów takich jak ten.
Cilenco,


2

Zaktualizowałem w build.gradle aplikacji

dependencies {
....
compile 'com.google.android.gms:play-services-auth:9.0.0'

i aplikacja build.gradle

  dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'
}

Działa dla.


2

W moim przypadku usunąłem „zastosuj wtyczkę:„ com.google.gms.google-services ”” na końcu gradle.build i działającą poprawnie.



1

Szukałem ... na stronie Google jest rozwiązanie ... https://developers.google.com/android/guides/google-services-plugin#introduction

Dodaj zależności dla bibliotek podstawowych wymaganych dla włączonych usług. Ten krok wymaga, aby wiersz zastosowania wtyczki: „com.google.gms.google-services” znajdował się na końcu pliku app / build.gradle, aby nie wprowadzać kolizji zależności. Możesz zobaczyć wynik tego kroku, uruchamiając ./gradlew: app: dependencies.


1

Przeniesienie zastosowania wtyczki nie ma sensu: 'com.google.gms.google-services„na koniec build.gradle . To samo, co nieokreślanie go.

Po prostu usuń ten wiersz i upewnij się, że zastosujesz wtyczkę: 'com.android.application ” już tam jest

Posługiwać się:

compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services:8.4.0'

to się skompiluje.


Zastosowanie wtyczki może / może mieć wpływ na to, która wersja jest używana. Zobacz tę odpowiedź autor: rguerinet
Ryan H.,

0

W stopniu projektu

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.google.gms:google-services:2.0.0-alpha6'
    }
}

w klasie aplikacji / modułu

apply plugin: 'com.google.gms.google-services'
android {
    ...
}

dependencies {
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
}


-3

Oto moja instrukcja, aby to naprawić.

  1. Zmień, aby używać compile 'com.google.android.gms:play-services-location:8.3.0'w aplikacjibuild.gradle
  2. Przejdź apply plugin: 'com.google.gms.google-services'na koniec aplikacjibuild.gradle
  3. Użyj classpath 'com.google.gms:google-services:2.0.0-alpha3'w build.gradlezależności projektu
  4. Zmień na użycie gradle-2.8wgradle/wrapper/gradle-wrapper.properties
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.