web-dev-qa-db-fra.com

Erreur lors de la construction d'un fichier APK dans Android Studio 2.1.1

Il y a quelques jours, j'ai mis à niveau mon Android Studio et je suis maintenant confronté à un problème.

En fait, j'essaie de créer un fichier APK à partir de mon projet pour tester mon application sur un périphérique réel. Lorsque je clique sur Construire -> Construire Apk , je reçois quelques erreurs dans Message Gradle Build. Je ne sais pas pourquoi ces erreurs arrivent, veuillez expliquer la raison également.

Les erreurs  

  1. Erreur: Erreur lors de la conversion du bytecode en dex:
    Cause: com.Android.dex.DexException: plusieurs fichiers dex définissent Lcom/Android/volley/VolleyError;

  2. Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithDexForDebug'. com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException: org .gradle.process.internal.ExecException: La commande de processus 'C:\Program Files\Java\jdk1.8.0_51\bin\Java.exe' 'est terminée avec une valeur de sortie non nulle 2

Fichier build.gradle  

 apply plugin: 'com.Android.application'

Android {
    signingConfigs {
    }

    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.dovezeal.gapp"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7

    }

}



dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:appcompat-v7:23.0.1'
    //compile 'com.Android.support:appcompat-v7:23.3.0'

    compile 'com.Android.support:support-v4:23.3.0'
    compile 'com.Android.support:design:23.0.1'
    compile 'com.Android.support:design:23.1.1'

    // Volley
    compile 'com.Android.volley:volley:1.0.0'
    //compile 'com.mcxiaoke.volley:library:1.0.+'
    /* compile files('libs/com.mcxiaoke.volley library-1.0.0.jar')*/


    // RecyclerView
    compile 'com.Android.support:recyclerview-v7:23.0.+'

    // A simple way to define and render UI specs on top of your Android UI.
    compile 'org.lucasr.dspec:dspec:0.1.1'

    compile files('libs/library-1.0.0.jar')

    // YouTube Player
    compile files('libs/YouTubeAndroidPlayerApi.jar')

    // GOSN
   /* compile files('libs/gson-2.2.3.jar')*/




}

Modifier - 1

Comme le disait janki gadhiya dans son commentaire ci-dessous, changer minifyEnabled true et essayer d'ajouter multiDexEnabled true sous defaultConfig 
avec ces modifications, les deux erreurs ci-dessus ont disparu, mais cette erreur suivante est à venir.

  1. Erreur: échec de l'exécution pour la tâche: app: transformClassesWithJarMergingForDebug ' Com.Android.build.api.transform.TransformException: Java.util.Zip.ZipException: entrée en double: com/Android/volley/Request $ Priority .classe
7
Arsh Kaushal

fichier build.gradle

apply plugin: 'com.Android.application'

Android {
signingConfigs {
}

compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.dovezeal.gapp"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/notice.txt'
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt')
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7

}

}

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

// as you already compiled gradle for volley here

compile 'com.Android.volley:volley:1.0.0'

// RecyclerView
compile 'com.Android.support:recyclerview-v7:23.0.+'
compile 'org.lucasr.dspec:dspec:0.1.1'

// you don't need this so comment the below line.
//compile files('libs/library-1.0.0.jar')

// YouTube Player
compile files('libs/YouTubeAndroidPlayerApi.jar')

}

Edit: Explications

Vos erreurs 1 - 2 : signifient que vous avez plus de 65 000 méthodes dans votre projet, je vous ai donc recommandé de définir multiDexEnable true.

Votre erreur 3 : signifie que plusieurs bibliothèques ont l'implémentation de la classe Request$Priority.class, le compilateur ne sait donc pas lequel choisir. Donc, il montre le erreur entrée en double . Ceci sera résolu par packaging options, cela vous permettra d'utiliser des fichiers en double.

29
Janki Gadhiya

Ajoutez ceci dans votre niveau de construction

    dexOptions {
            incremental true
            javaMaxHeapSize "4g"    
}



packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
1
J.D.

Je reçois aussi la même erreur. Lors de l'ajout du compiler "com.google.firebase: firebase-ads: 10.2.0"

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.Android.support', module: 'support-annotations'
})

compile 'com.google.firebase:firebase-ads:10.2.0'
}

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

et dans BuildVarient, utilisez le mode débogage .

Je pense que cela vous aidera.

1
Jatinder Kumar

lors de la mise à jour de Firebase, utilisez un des services Google Play, puis essayez de mettre à jour toutes les bibliothèques. cela a fonctionné pour moi. espérons que cela fonctionne dans certains cas.

0
Uma Achanta