8
votes

Android Googleapiclient - NoclassDeffondonError: COM / Google / Android / GMS / Interne / ZZSA

Je développe une application qui utilise Googleapiclient to (évidemment) Obtenir l'emplacement actuel de l'utilisateur en arrière-plan.

Pour cette tâche, j'utilise Intenteervice avec wakfulBroadCastreCeiver (pour obtenir l'emplacement toutes les heures). Tout fonctionnait bien sur l'environnement de développement, mais lorsqu'il est déployé dans Play Store, certains appareils reçoivent cette erreur: P>

// 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:1.5.0'
        classpath 'com.google.gms:google-services:+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}


11 commentaires

En fait: com.google.android.gms: Play-Services: 8.3.0


J'ai mis à jour le DEPS, mais j'ai lu les notes de publication et il n'y a rien sur la solution pour les services de localisation - à moins que l'amélioration de l'emplacement par wifi et la tour cellulaire. Correction: Échec de la résolution: com.google.android.gms: Play-Services: 8.4.0


Montrez votre build.gradle & classpath .


Ajouté Build.Gradle de mon application et de mon projet root


Supprimer Appliquer plug-in: 'com.google.gms.google-services' & classPath 'com.google.gms: Google-Services: +'


Ajouter classpath 'com.android.tools.build:gradle:2.0.0-alpha2' et classpath 'com.google.gms: Google-Services: 2.0.0-Alpha1'


Je reçois ce: le plugin est trop vieux, veuillez mettre à jour à une version plus récente ou définir une variable d'environnement Android_Daily_override à "2260A25621626D4A38D9E94FD161E5383F8D6B5E"


Ensemble classpath 'com.android.tools.build:gradle:2.0.0-alpha3'


Vous pouvez utiliser com.android.tools.build:gradle:2.0.0-alpha5 .hope ceci aide .oule-moi informer.


Avec une erreur de gradle alpha5 ne montre pas d'erreur. Mais sans "Appliquer plugin:" Services "" et "ClassPath", il n'est pas généré GCM_DefaultSenderID pour GCM.


Avez-vous une configuration de proguard?


3 Réponses :


0
votes

Ceci est clairement une erreur de configuration de PROGUARD de GMS (Google Play Services).

  • soit il est causé par une mauvaise version que vous construisez contre, et vous pouvez construire contre un autre.
  • ou cela est causé par les services de jeu installés sur l'appareil et que vous ne pouvez espérer que l'équipe de play Services a cessé de roolout de cette version jusqu'à ce que le bogue soit corrigé.

1 commentaires

Utilisation du tissu, je peux maintenant voir que tous les utilisateurs concernés par ce problème utilisent Android 4.x. Peut-être que la distribution des services de jeu est bugée, je ne sais pas. Mais il diminue le nombre d'appareils avec cette erreur.



2
votes

vous obtenez

Exception fatale: Java.Lang.NoclassDEffoundEfferror: Com / Google / Android / GMS / Interne / ZZSA chez com.google.android.gms.common.api.googleapiclient $ Builder. (Inconnu Source)

NOCLASSDEFFUTEROR en Java vient lorsque Java Virtual Machine n'est pas en mesure de trouver une classe particulière au moment de l'exécution disponible pendant la compilation.

ancien xxx

Googleapiclient est utilisé avec une variété de méthodes statiques. Une partie de Ces méthodes nécessitent que Googleapiclient soit connecté, certains seront Appels de la queue avant que Googleapiclient est connecté; xxx

Vous devez essayer avec votre build.gradle

fichier de construction de niveau supérieur dans lequel vous pouvez ajouter des options de configuration communes à Tous les sous-projets / modules. xxx

conseils Vous pouvez appeler

  1. compile 'com.android.support:appcompat-v7:23.1.1' au lieu de V7: 23 +

    alors nettoyer-reconstruction-redémarrez-synchroniser votre projet .hope ceci aide.

    edit

    Le système de construction Android consiste en un plugin Android pour la grade. Gradle est une boîte à outils de construction avancée qui gère les dépendances et Vous permet de définir la logique de construction personnalisée. Android Studio utilise une grade wrapper pour intégrer complètement le plugin Android pour gradle. L'Android Le plugin pour gradle fonctionne également indépendamment du studio Android.

    Un plugin est simplement n'importe quelle classe qui implémente l'interface de plug-in. La gradle fournit les plugins de base dans le cadre de sa distribution, il suffit de simplement appliquer le plugin comme ci-dessus.

    avec bêta2 et alpha-5 gradle dedle ne montre pas l'erreur. Mais sans "appliquer Plugin: 'Services' "et" ClassPath "Il n'est pas généré gcm_defaultSenderID pour GCM

    Vous pouvez vérifier Obtenir un identifiant d'instance

    Vous devez utiliser Appliquer plugin .


2 commentaires

Hey Man, avec Beta2 et Alpha-5, la gradle dedle ne montre pas l'erreur. Mais sans "Appliquer Plugin:" Services "" et "ClassPath", il n'est pas généré GCM_DEFAULTSENDREID pour GCM


Oui!! Avec ce non plus de périphériques (même avec Android 4.x) obtient cette erreur! Merci beaucoup pour m'aider! Je pense que j'ai une erreur l'autre fois que j'utilise cette Conf, mais je sais que ça va!



0
votes

Enfin! J'ai passé littéralement plusieurs heures à essayer de résoudre ce problème, peut-être que cela a déjà été résolu, mais il s'avère que les classes Google que vous utilisez doivent toutes être la même version de la gradle, c'est-à-dire

   compile 'com.google.android.gms:play-services-identity:7.8.0'

compile 'com.google.android.gms:play-services-location:7.8.0'


1 commentaires

J'utilise la même version pour tous les services utilisés