web-dev-qa-db-fra.com

Après la mise à niveau vers Google Play Services 8.4.0, mon application se bloque au démarrage

J'ai déjà utilisé Google Play Services 8.3.0 sans aucun problème. Je cherche à passer à Google Play Services 8.4.0. J'utilise les bibliothèques de jeux suivantes:

compile 'com.google.Android.gms:play-services-analytics:8.4.0'
compile 'com.google.Android.gms:play-services-location:8.4.0'
compile 'com.google.Android.gms:play-services-gcm:8.4.0'

Lorsque je lance l'application, celle-ci se bloque, avec le journal suivant.

12-27 03:01:33.915 20567-20567/com.ryanc.Android.stage.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.ryanc.Android.stage.debug, PID: 20567
    Java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/Android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.Android.gms.common.internal.zzx' appears in /data/app/com.ryanc.Android.stage.debug-1/base.apk:classes17.dex)
    at com.google.Android.gms.measurement.internal.zzw.zzaT(Unknown Source)
    at com.google.Android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
    at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1696)
    at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1671)
    at Android.app.ActivityThread.installProvider(ActivityThread.Java:4999)
    at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4594)
    at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4534)
    at Android.app.ActivityThread.access$1500(ActivityThread.Java:151)
    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1364)
    at Android.os.Handler.dispatchMessage(Handler.Java:102)
    at Android.os.Looper.loop(Looper.Java:135)
    at Android.app.ActivityThread.main(ActivityThread.Java:5254)
    at Java.lang.reflect.Method.invoke(Native Method)
    at Java.lang.reflect.Method.invoke(Method.Java:372)
    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:903)
    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698)

Edit: Je ne suis pas sûr que ça va aider, mais à la demande de @gerardnimo, voici le fichier build.gradle complet. À noter également que j’ai essayé une nouvelle version, puis supprimé et réinstallé sdks de Play Services à partir de mon ordinateur.

apply plugin: 'com.Android.application'
apply plugin: 'checkstyle'

def SDK = "$MIN_SDK_VERSION"
def V_CODE = "$VERSION_CODE"

buildscript {
    repositories {
        mavenCentral()
    }
}

repositories {
    mavenCentral()
    jcenter()
    maven { url 'https://zendesk.artifactoryonline.com/zendesk/repo' }
    maven { url "http://kahuna.github.io/kahuna-Android/sdk" }
}

Android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        applicationId "com.ryanc.Android"
        minSdkVersion SDK.toInteger()
        targetSdkVersion 23
        versionCode V_CODE.toInteger()
        versionName "$APP_VERSION.$BUILD_NUMBER"
        multiDexEnabled true
    }
    signingConfigs {
        debug {
            storeFile file("$DEBUG_KEYSTORE_PATH")
            storePassword "$DEBUG_KEYSTORE_PASSWORD"
            keyAlias "$DEBUG_KEY_ALIAS"
            keyPassword "$DEBUG_KEY_PASSWORD"
        }
        release {
            storeFile file("$KEYSTORE_PATH")
            storePassword "$KEYSTORE_PASSWORD"
            keyAlias "$KEY_ALIAS"
            keyPassword "$KEY_PASSWORD"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    productFlavors {
        prod {
            applicationId "com.ryanc.Android"
        }

        stage {
            applicationId "com.ryanc.Android.stage"
        }

        qa {
            applicationId "com.ryanc.Android.qa"
        }

        dev {
            applicationId "com.ryanc.Android.dev"
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    def supportVersion = "23.1.1"

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':api')
    compile "com.Android.support:support-v4:$supportVersion"
    compile "com.Android.support:appcompat-v7:$supportVersion"
    compile "com.Android.support:design:$supportVersion"
    compile 'com.facebook.Android:facebook-Android-sdk:4.8.1'
    compile 'uk.co.chrisjenx:calligraphy:2.0.1'
    compile "com.Android.support:cardview-v7:$supportVersion"
    compile "com.Android.support:recyclerview-v7:$supportVersion"
    compile "com.Android.support:support-v13:$supportVersion"
    compile 'com.google.Android.gms:play-services-analytics:8.4.0'
    compile 'com.google.Android.gms:play-services-location:8.4.0'
    compile 'com.google.Android.gms:play-services-gcm:8.4.0'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.4.5'
    compile 'com.fasterxml.jackson.core:jackson-core:2.4.5'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.5'
    compile 'joda-time:joda-time:2.5'
    compile 'com.squareup.retrofit:retrofit:1.7.1'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.netflix.rxjava:rxjava-core:0.20.7'
    compile 'com.netflix.rxjava:rxjava-Android:0.20.7'
    compile 'com.squareup.dagger:dagger:1.2.2'
    compile 'com.squareup.mortar:mortar:0.16'
    compile 'com.squareup.flow:flow:0.8'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'com.jakewharton.timber:timber:2.5.1'
    compile 'com.braintreepayments:encryption:2.0.0'
    compile 'com.newrelic.agent.Android:android-agent:5.3.2'
    compile 'com.instabug.library:instabugsupport:1.7.1'
    compile 'net.hockeyapp.Android:HockeySDK:3.0.2'
    provided 'com.squareup.dagger:dagger-compiler:1.2.2'
    compile 'com.rengwuxian.materialedittext:library:2.1.4'
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.mixpanel.Android:mixpanel-Android:4.6.2'
    compile 'com.roomorama:caldroid:2.2.0'
    compile 'com.squareup.phrase:phrase:1.1.0'
    compile 'com.zendesk:sdk:1.5.0.1'
    compile 'com.flipboard:bottomsheet-core:1.4.3'
    compile 'com.kahuna.sdk:kahuna:2.3.1'
    compile 'io.branch.sdk.Android:library:1.+''
}
23
Ryan C

J'ai pu résoudre ce problème. Mon collègue a pu se mettre à niveau sans problèmes. Je suis allé dans mes dossiers sdk/extras et j'ai vu que le mien était assez différent. J'ai donc déplacé mon dossier, copié mes collègues et cela a fonctionné.

Je pense que ce dossier et peut-être quelque chose d'autre dans le dossier sdk venait de passer à un état étrange, effacer le dossier et redownloading peut aussi fonctionner.

4
Ryan C

Les versions des bibliothèques play-services doivent être égales, par exemple:

FAIRE

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

Ne pas

compile 'com.google.Android.gms:play-services-maps:7.8.0'
compile 'com.google.Android.gms:play-services-gcm:8.4.0'
21
Artemiy

Lors de la compilation sélective des API de service Google Play sur la version 8.4.0, j'ai également rencontré des problèmes (8.3.0 -> 8.4.0).

Erreur:

Could not find method com.google.Android.gms.common.internal.zzx.zzy

Avant la mise à niveau:

compile 'com.google.Android.gms:play-services-maps:8.3.0'

Après la mise à niveau (ne fonctionne pas):

compile 'com.google.Android.gms:play-services-maps:8.4.0'

Après la mise à niveau (fonctionne bien):

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

Conclusion: il semble que certains des services de jeu aient maintenant certaines dépendances que vous devez spécifier explicitement, par exemple: maps -> gcm.

7
Jing Li

Je viens d'avoir ce problème, mais je l'ai résolu en rétrogradant la version de gradle comme ceci:

Ancienne version gênante:

    classpath 'com.Android.tools.build:gradle:2.2.0-rc2'

Version fixe:

    classpath 'com.Android.tools.build:gradle:2.1.3'
2
Taskmaster

J'ai le même problème et je résous ce problème en configurant correctement les règles de proguard.

Ce que j'ai fait ici sous comme ci-dessous:

D'abord, j'ai exclu les Google classes d'obfuscating comme ceci dans proguard-rules.pro:

-keep public class com.google.** {*;}

Deuxièmement, j'ai activé cette minifyEnabled dans build.gradle comme ceci:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.e2e.quiz"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:recyclerview-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'
    compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'com.squareup.picasso:picasso:2.4.0'
    compile 'com.google.Android.gms:play-services-gcm:9.2.1'
    compile 'com.google.Android.gms:play-services-analytics:9.2.1'
    compile 'com.google.Android.gms:play-services-ads:9.2.1'
    compile project(':ast-dst')
}
1
Geek

J'ai rencontré ce problème tout à l'heure. Je suis passé de 7.8.0 à 8.4.0 et j'ai reçu la même erreur que vous. La reconstruction et/ou le nettoyage du projet ont fonctionné pour moi.

1
Nick

Supprimer et réinstaller Google Services à partir du gestionnaire de SDK et supprimer le contenu de votre projet/.gradle/l'a résolu pour moi

0
Gallal

compile 'com.google.Android.gms:play-services:+' compile 'com.google.firebase:firebase-core:+'

Ce qui fonctionne pour moi

0
Pencilcheck

J'ai rencontré le même problème en parcourant le tutoriel officiel .

La solution était de changer 

classpath 'com.google.gms:google-services:2.0.0-alpha6'

à

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

J'ai trouvé le numéro de version correct dans le exemple sur le github .

0
Artem Mostyaev

Je pense que vous devriez inclure la bibliothèque -base de la même version. Ensuite, il recommence à travailler. 

0
Eloy_007