web-dev-qa-db-fra.com

Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithDexForDebug'

L'erreur

Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithDexForDebug' . com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: processus 'commande'/usr/lib/jvm/Java-8-Oracle/bin/Java '' terminé avec une valeur de sortie non nulle 1

Mon fichier de notes d'application:

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

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId 'Hidden application ID'
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
    productFlavors {
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.Android.support:appcompat-v7:23.1.1'
    compile 'com.Android.support:design:23.1.1'
    compile 'com.Android.support:cardview-v7:23.1.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.google.Android.gms:play-services:8.1.0'
    compile 'com.facebook.Android:facebook-Android-sdk:4.7.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.Android.support:preference-v7:23.1.1'
}

Lors du débogage, si je règle minifyEnabled sur true, la compilation est effectuée. Cependant, je ne peux pas déboguer mon application.

J'ai vérifié cette autre question: L'exécution a échoué pour la tâche ': app: transformClassesWithDexForDebug' lors de la connexion de Google à Android , mais il n'y a qu'une seule réponse et sa mise en œuvre ne résout malheureusement pas le problème.

Autant que je sache, l'erreur est due à l'ajout de trop nombreuses dépendances de Gradle, mais je peux me tromper (j'espère vraiment me tromper car tous ces paquets sont vraiment importants!). 

S'il vous plaît aidez-moi à résoudre cette erreur. Merci beaucoup!

67
Saket Jain

Il suffit de corriger les dépendances des services Google Play:

Vous incluez tous les services de jeu dans votre projet. Ajoutez seulement ceux que vous voulez. 

Par exemple, si vous utilisez uniquement des cartes et une signature g +, changez

 compile 'com.google.Android.gms:play-services:8.1.0'

à 

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

De la doc: 

Dans les versions des services Google Play antérieures à la version 6.5, vous deviez compiler l'intégralité du package d'API dans votre application. Dans certains cas, cela fait il est plus difficile de conserver le nombre de méthodes dans votre application (y compris les API framework, les méthodes de bibliothèque et votre propre code) sous 65 536 limite.

À partir de la version 6.5, vous pouvez compiler sélectivement Google Play API de service dans votre application. Par exemple, pour inclure uniquement le Google API Fit et Android Wear, remplacez la ligne suivante dans votre fichier Fichier build.gradle: 
compiler 'com.google.Android.gms: play-services: 8.3.0' 
avec ces lignes:

compiler 'com.google.Android.gms: play-services-fitness: 8.3.0' 
compiler 'com.google.Android.gms: play-services-wearable: 8.3.0'

La liste entière peut être trouvée ici .

49
Krupal Shah

Essayer 

dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}

Je ne connais pas la raison ... quelque chose à propos de preDexLibraries: https://sites.google.com/a/Android.com/tools/tech-docs/new-build-system/tips

Selon @ lgdroid57:

La ressource suivante devrait aider à expliquer le rôle de ce code: link ( http://google.github.io/Android-gradle-dsl/current/com.Android.build.gradle.internal.dsl.DexOptions.html ) Propriété | Description javaMaxHeapSize | Définit la valeur -JXmx * lors de l’appel de dx. Le format doit suivre le modèle 1024M. preDexLibraries | Que ce soit pour les bibliothèques pré-dex. Cela peut améliorer les builds incrémentiels, mais les builds propres peuvent être plus lents.

24
tiny sunlight

Essayez d’ajouter multiDexEnabled true à votre fichier app build.gradle.

  defaultConfig {
    multiDexEnabled true
}
18
Mohamed Mesalm

C'est le problème de Multidex. Vous pouvez essayer de supprimer certains fichiers jar ou de la manière suivante: http://developer.Android.com/tools/building/multidex.html#mdex-gradle Dans l'application. grade:

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

        // Enabling multidex support.
        multiDexEnabled true
    }
dependencies {
  compile 'com.Android.support:multidex:1.0.0'
}

Dans 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>
</manifest>
15
Courysky

ajoutez multiDexEnabled true dans default config file sur build.gradle comme ceci

    defaultConfig {
        multiDexEnabled true
       }
13
Mohamed Ibrahim

La solution qui a fonctionné pour moi personnellement était la suivante:

dans le build.gradle

defaultConfig {
        multiDexEnabled true
    }

 dexOptions {
        javaMaxHeapSize "4g"
    }
5
Camilo Soto

Ma réponse est un peu ancienne, mais pour moi la seule solution consistait à ajouter l'option multiDexEnabled dans defaultConfig comme ceci:

    Android{
        ...
        defaultConfig{
            ...
            multiDexEnabled true
        }
    }

Si cela ne fonctionne pas pour vous, essayez d'ajouter ce morceau de code:

    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.Android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.1.0'
            }
        }
    }
}

Mon erreur était liée à un problème avec différentes versions de librairies et cela a rendu l'astuce. 

J'espère que cela peut aider quelqu'un :)

3
Daniel S.

Assurez-vous de ne pas utiliser deux versions du service Google.

Par exemple avoir:

compile 'com.google.firebase:firebase-messaging:9.8.0'

et

compile 'com.google.firebase:firebase-ads:10.0.0'
2
Isaac

Je l'ai résolu! C'est un ensemble de configuration et de mise à jour. Ajoutez ces variables là où elles se trouvent dans build.gradle

Android {
packagingOptions {
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
}
dexOptions {
    javaMaxHeapSize "4g"
}
defaultConfig {
    multiDexEnabled true
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
}

Ensuite, mettez à jour vers Java 8 http://tecadmin.net/install-Oracle-Java-8-jdk-8-ubuntu-via-ppa/ et tout sera résolu! C'est à cause de la mise à jour buildTools et du nouveau studio Android . Rien d'autre n'échouera. 

1
Pian0_M4n

Aide possible

Essayé en dernier recours après avoir épuisé toutes les autres options

J'ai enlevé toutes les clés de mémoire (RAM) sauf une. J'ai moins de mémoire maintenant mais ça fonctionne à nouveau. Je ne peux pas prétendre savoir pourquoi le processus de construction a toujours trouvé de la mémoire corrompue, ou si c'est la cause première à 100% - à d'autres égards, le système fonctionnait correctement. Peut-être que c'est quelque chose à essayer, bonne chance. 

1
maturecheese

J'ai eu ce problème lorsque j'ai mis à jour le plugin Gradle de la version 1.2.3 à 1.5.0 comme suggéré par Android Studio. Dans sa page Web , 1.5.0 semble être une version bêta.

Honnêtement, je ne connais pas les avantages de la version 1.5.0, mais je préférerais attendre qu’une version stable soit disponible.

Bien sûr, revenir à la version 1.2.3 a résolu le problème.

1
Miguel Palacio

Allez dans la construction -> 

Projet propre ->

Exécuter le projet: terminé

travailler sur Android 5.1 pour moi

1
DILSHAD AHMAD

Pour moi, la fermeture de tous les autres Android Studio a résolu le problème.

J'avais ouvert 3 studios Android au moment où j'obtenais l'erreur, après avoir fermé 2, je n'ai pas eu d'erreur.

Pas besoin d'ajouter de code lié à multiDex!

1
Sanyam Jain

En changeant 

compiler 'com.google.Android.gms: play-services: 8.1.0'

le problème peut être résolu uniquement pour les fichiers nécessaires.

1
Ashay Khedkar

Allez dans Build -> Clean et exécutez votre application à nouveau

1
Dodi

Pas besoin de multitex. Pour "l'ancien" projet ouvert dans Android Studio 2.1, il changeait la version du plugin Gradle de 1.5.0 à 2.1.0 qui résolvait ce problème.

buildscript {
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.1.0'
    }
}
1

Déplacez la déclaration du plugin apply au bas du fichier:

appliquer le plugin: 'com.google.gms.google-services'

0
Rene Enriquez

J'ai eu une erreur similaire. Je l'ai corrigé en changeant simplement de répertoire. Cloner à nouveau mon projet à partir de mon référentiel git, l'importer dans le studio Android et le construire. On dirait que l'un des répertoires/fichiers générés par Android Studio lors de la construction de votre projet peut avoir été corrompu. Supprimer tous les fichiers générés par Android Studio dans votre projet ou faire ce que j'ai fait pourrait résoudre le problème. J'espère que cela t'aides.

0
user3760100

J'ai eu cette erreur lors de l'exécution d'un projet ionique sur un appareil Android et je l'ai résolu en supprimant et en ajoutant la plate-forme Android:

ionic cordova platform remove Android
ionic cordova platform add Android
0
Roman

A tous ceux qui ont été confrontés à ce problème/le feront à l'avenir:

Cliquez sur le menu Build -> Sélectionnez une variante de construction -> Restore to 'debug'

Résultat sur le module debuggable: app /* debug { debuggable true } * /

Allez dans le menu Construire -> générer un apk signé -> .... -> construisez-le

0
Firsake

En utilisant ionic, j’ai pu corriger cette erreur en utilisant la commande: "Cordova clean"

0
Fabien Thetis
  1. Exécuter: plugin cordova rm cordova-plugin-compat --force
  2. Exécuter: plugin cordova add [email protected]
  3. Modification: config.xml dans votre dossier de projet, utilisez "6.2.3" et non "^ 6.2.3", Supprimez ensuite le dossier des plates-formes/Android, réexécutez cordova prepare Android et cordova construit Android

Apparemment, j'ai résolu le problème en combinant toutes les solutions En ajoutant ce qui suit au manifeste Android:

<application
...
        Android:name="Android.support.multidex.MultiDexApplication" >
...
</application>

Suivre le module de l'application build.gradle

Android {
...

    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }
...
    defaultConfig {

        multiDexEnabled true

   }

}
0
cammando

Ne deviens pas fou Je viens juste de nettoyer, puis de reconstruire le projet

0
Gian Gomen

J'ai eu ce problème lorsque j'ai délégué ma tâche de compilation au Google Compute Engine via SSH. La nature de ce problème est une erreur de mémoire, comme indiqué par le journal des incidents; spécifiquement, il est lancé lorsque Java manque de mémoire virtuelle pour pouvoir fonctionner pendant la construction.

Important:Lorsque Gradle tombe en panne à cause de cette erreur de mémoire, les démons Gradle restent actifs longtemps après l'échec de la tâche de compilation. Toute nouvelle tentative de construction à l'aide de gradle allouera un nouveau démon Gradle. Vous devez vous assurer que vous disposez correctement de toutes les instances bloquées en utilisantgradlew --stop.

Le journal des incidents hs_error_pid indique les solutions suivantes:

# There is insufficient memory for the Java Runtime Environment to continue.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=

J'ai constaté qu'après l'augmentation des ressources d'exécution de la machine virtuelle , ce problème était résolu.

0
Mapsy

il suffit de supprimer les deux dossiers build dans /Android et /Android/app

et compiler à nouveau avec react-native run-Android

0
Mahdi Bashirpour