web-dev-qa-db-fra.com

java.lang.NoClassDefFoundError: com.google.Android.gms.common.internal.zzd

En utilisant Maps api v2 et cela fonctionne parfaitement avec 4.4, 5.0, 5.1, 5.1.1, 6 mais l'application se bloque lorsque j'essaie la version 4.2.2. J'ai fait beaucoup de recherches mais rien ne semble fonctionner. Voici le journal complet. 

FATAL EXCEPTION: main
     Java.lang.NoClassDefFoundError: com.google.Android.gms.common.
         at com.google.Android.gms.measurement.internal.zzk$zza.get(
         at com.google.Android.gms.measurement.internal.zzc.zzkG(
         at com.google.Android.gms.measurement.internal.zzr.<init>(
         at com.google.Android.gms.measurement.internal.zzx.zzb(
         at com.google.Android.gms.measurement.internal.zzt.<init>(
         at com.google.Android.gms.measurement.internal.zzx.zzBQ(
         at com.google.Android.gms.measurement.internal.zzt.zzaU(
         at com.google.Android.gms.measurement.ource)
         at Android.content.ContentProvider.attachInfo(ContentProvider
         at Android.app.ActivityThread.installProvider(ActivityThread.
         at Android.app.ActivityThread.installContentProviders(
         at Android.app.ActivityThread.handleBindApplication(
         at Android.app.ActivityThread.access$1300(ActivityThread.
         at Android.app.ActivityThread$H.handleMessage(ActivityThread.
         at Android.os.Handler.dispatchMessage(Handler.Java:99)
         at Android.os.Looper.loop(Looper.Java:137)
         at Android.app.ActivityThread.main(ActivityThread.Java:5041)
         at Java.lang.reflect.Method.invokeNative(Native Method)
         at Java.lang.reflect.Method.invoke(Method.Java:511)
         at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run
         at com.Android.internal.os.ZygoteInit.main(ZygoteInit.
         at dalvik.system.NativeStart.main(Native Method)

des idées? 

Voici mon build.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'

repositories {
    mavenCentral()
    maven {
        url "http://dl.bintray.com/glomadrian/maven"
    }
    maven { url 'https://maven.fabric.io/public' }
}

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "py.com.roshka.billeterabancard"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.wang.avi:library:1.0.1'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.github.glomadrian:loadingballs:1.1@aar'
    compile 'com.Android.support:appcompat-v7:23.1.0'
    compile 'com.google.Android.gms:play-services:8.4.0'
    compile 'com.Android.support:design:23.1.0'
    compile 'com.Android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.okio:okio:1.0.+'
    compile 'com.squareup.okhttp:okhttp:1.5.4'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.retrofit:retrofit:1.8.0'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.code.gson:gson:2.3'
    compile 'me.dm7.barcodescanner:zxing:1.8.3'
    compile 'me.dm7.barcodescanner:zbar:1.8.3'
    compile('com.crashlytics.sdk.Android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
}
5
Passerin

Après des recherches et des heures de test, j'ai finalement compris qu'Android possédait un système appelé DEX 64K Methods Limit. En termes simples, vous pouvez atteindre une limite lorsque vous ajoutez des bibliothèques externes à votre projet. Lorsque vous atteignez cette limite, vous devrez peut-être utiliser multidex. Personnellement, j'ai décidé de réduire le nombre de bibliothèques importées car certaines d'entre elles n'étaient pas vraiment utilisées ou nécessaires. Pour mieux comprendre multidex, lisez ceci: 

http://developer.Android.com/tools/building/multidex.html

4
Passerin

3 étapes simples:

Étape n ° 1: Le multidexing est une nouvelle fonctionnalité qui nécessite par conséquent une bibliothèque de prise en charge compatible avec les appareils antérieurs à Lollipop. Vous devez ajouter les éléments suivants à vos dépendances de fichier Gradle:

compile 'com.Android.support:multidex:1.0.0'

Étape n ° 2: Activez également la sortie multidex dans votre fichier Gradle:

Android {
compileSdkVersion 21
buildToolsVersion "21.1.0"

defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...

    // Enabling multidex support.
    multiDexEnabled true
   }
}

Étape 3: Ajoutez ensuite l’application de support multidex à votre manifeste:

<?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="Android.support.multidex.MultiDexApplication">
    ...
</application>

Remarque: Si votre application utilise déjà (étend) la classe Application, vous pouvez remplacer la méthode attachBaseContext () et appeler MultiDex.install (this) pour activer multidex. Pour plus d'informations, voir la documentation de référence MultiDexApplication.

@Override
protected void attachBaseContext(Context context) {
    super.attachBaseContext(context);
    MultiDex.install(this);
}

Voici les mêmes instructions pour référence: https://developer.Android.com/tools/building/multidex.html

16
Shirish Herwade

Vous devez ajouter les éléments suivants à vos dépendances de fichier Gradle:

compile 'com.applozic.communication.uiwidget:mobicomkitui:5.8.4'
0
Mr_Moradi

Vous devez ajouter les éléments suivants à vos dépendances de fichier Gradle:

compile 'com.applozic.communication.uiwidget:mobicomkitui:5.8.4'

et synchroniser votre projet

0
Mr_Moradi

J'ai fait face à ce problème, je l'ai résolu uniquement en changeant la version de Gradle. Ce problème se produit à cause des mises à jour de Google. Une fois que vous modifiez les fichiers de gradation, il s'exécute correctement, comme indiqué ci-dessous.

compile 'com.google.Android.gms:play-services-auth:10.0.1'
compile 'com.google.Android.gms:play-services-gcm:10.0.1'
compile 'com.google.Android.gms:play-services:10.0.1'
compile 'com.Android.support:support-v4:25.1.0'
compile 'com.Android.support:appcompat-v7:25.1.0'
compile 'com.Android.support:support-annotations:25.1.0'

Change the Gradle files to

compile 'com.google.Android.gms:play-services-auth:**11.0.4**'
compile 'com.google.Android.gms:play-services-gcm:**11.0.4**'
compile 'com.google.Android.gms:play-services:**11.0.4**'
compile 'com.Android.support:support-annotations:**25.3.1**'
compile 'com.Android.support:support-v4:**25.3.1**'
compile 'com.Android.support:appcompat-v7:**25.3.1**'
0
Devloper Tamil