Google GCM android crashes (java.lang.NoClassDefFoundError: com.google.android.gms.R $ string)

Je développe une application en utilisant le service Google GCM et il semble s'écraser sur tous les appareils pré-lollipop au lancement .. J'ai suivi le tutoriel Google … et travaille sur la sucette et la guimauve

Voici les dépendances de mon niveau de projet

  • Le remplacement de fragments se déclenche surQueryTextChange sur searchview
  • Comment faire passer l'application à une autre page si elle n'est pas exécutée d'ici la première fois
  • L'émulateur d'Android dans le plugin ADT ne fonctionne pas
  • Android Studio après mise à jour pour créer des outils 19.1.0
  • ClassNotFoundException pour SignInConfiguration lors de la connexion avec Google
  • Définir le réveil Android de manière programmée
  • dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.google.gms:google-services:1.5.0' } 

    Je l'ai dans mon fichier de gradle de niveau d'application

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

    et ça

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

    J'ai également configuré le manifeste Android et les classes de service en conséquence et j'ai reçu GCM sur un dispositif Marshmallow.

    J'ai cette erreur.

     E/AndroidRuntime: FATAL EXCEPTION: main Process: itcurves.driver, PID: 12788 java.lang.NoClassDefFoundError: com.google.android.gms.R$string at com.google.android.gms.measurement.zza.<init>(Unknown Source) at com.google.android.gms.measurement.zza.zzaR(Unknown Source) at com.google.android.gms.measurement.internal.zzn.zziJ(Unknown Source) at com.google.android.gms.measurement.internal.zzz.zza(Unknown Source) at com.google.android.gms.measurement.internal.zzw.<init>(Unknown Source) at com.google.android.gms.measurement.internal.zzaa.zzDj(Unknown Source) 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:1591) at android.content.ContentProvider.attachInfo(ContentProvider.java:1562) at android.app.ActivityThread.installProvider(ActivityThread.java:4889) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4476) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4413) at android.app.ActivityThread.access$1500(ActivityThread.java:142) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5120) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) at dalvik.system.NativeStart.main(Native Method) 

  • Essayez d'inclure une classe de base (java. * Ou javax. *) Dans quelque chose d'autre qu'une bibliothèque principale
  • Convertir AsyncTask en RxAndroid
  • L'efficacité du dessin de toile Android
  • Java.lang.IllegalStateException: l'enfant spécifié a déjà un parent. Vous devez appeler removeView () sur le parent de l'enfant d'abord
  • Cryptage Android
  • Arrêter avec le gestionnaire et postDelayed dans Android
  • One Solution collect form web for “Google GCM android crashes (java.lang.NoClassDefFoundError: com.google.android.gms.R $ string)”

    J'ai eu le même problème. Vous êtes probablement confronté à cela sur les appareils antérieurs à la version 5.0. La raison pour laquelle cela se produit est que la version antérieure à l'Android 5.0 utilise Dalvik et par défaut, Dalvik limite les applications à un fichier bytecode de classes.dex par APK. La solution Est d'utiliser le support multidex.

    Incluez dans vos dépendances build.gradle ceci:

     compile 'com.android.support:multidex:1.0.0' public class MyApp extends MultiDexApplication { @Override public void onCreate() { super.onCreate(); } 

    }

    Que dans votre classe Manifest add MultiDexApplication

     <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name=".MyApp"> ... </application> </manifest> 

    Remarque: Si vous avez déjà votre classe d'application, veuillez l'étendre avec la classe MultiDexApplication

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.