web-dev-qa-db-fra.com

com.Android.build.transform.api.TransformException

j'essaie d'intégrer Google Sign in, dans mon application, j'ai ajouté ces bibliothèques:

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

ajoutez également ceci au projet build gradle:

classpath 'com.google.gms:google-services:1.4.0-beta3'

ajouter également un plugin à l'appli build gradle:

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

puis ajouter les autorisations requises, mais lorsque j'essaie d'exécuter mon application, j'ai reçu cette erreur:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\Java.exe'' finished with non-zero exit value 2
159
saeed shahini

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

 defaultConfig {
    multiDexEnabled true
}

EDIT:

Essayez Steve's réponse d'abord. Si cela se produit fréquemment ou si la première étape n'a pas aidé, multiDexEnabled pourrait vous aider. Pour ceux qui aiment creuser plus profondément, voici quelques problèmes similaires (avec plus de réponses):

: app: dexDebug ExecException terminé avec une valeur de sortie non nulle 2

Erreur: L'exécution a échoué pour la tâche ': app: dexDebug'. Com.Android.ide.common.process.ProcessException

313
JuliusScript

Une autre chose à surveiller est que vous n'utilisez pas

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

Cela importera TOUS les services de jeu, et il ne vous faudra qu'un peu de monde pour dépasser la limite de la méthode 65535 pour un APK dex unique.

Toujours spécifier uniquement les services dont vous avez besoin, par exemple:

compile 'com.google.Android.gms:play-services-identity:8.3.0'
compile 'com.google.Android.gms:play-services-plus:8.3.0'
compile 'com.google.Android.gms:play-services-gcm:8.3.0'
146
A.Grandt

Il me suffisait de nettoyer mon projet et ensuite, il a été construit avec succès.

137
Steve Ganem

Cette erreur a commencé à apparaître lorsque j'ai ajouté de nouvelles méthodes à mon projet. Je savais que j'étais loin de la limite de la méthode des 65 000 et je ne souhaitais pas activer le support multiDex pour mon projet si je pouvais l'aider.

Je l'ai résolu en augmentant la mémoire disponible pour la tâche :app:transformClassesForDexForDebug. Je l'ai fait en spécifiant javaMaxHeapSize dans gradle.build.

gradle.build

Android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

J'ai essayé cela après n'avoir eu aucun succès avec d'autres solutions communes à ce problème:

  • Exécution d'un projet clean
  • Suppression manuelle des répertoires /app/build et /build de mon projet
  • Invalider le cache Gradle et redémarrer Android Studio

Erreur

Erreur: L'exécution a échoué pour la tâche> ': app: transformClassesWithDexForDebug'. com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: processus 'commande' /Library/Java/JavaVirtualMachines/jdk1.8.0_45. jdk/Sommaire/Accueil/bin/Java '' termine avec une valeur de sortie non nulle 1

Remarque: augmenter la mémoire disponible pour la tâche DEX peut entraîner des problèmes de performances sur les systèmes disposant de moins de mémoire - link .

23
Maurice Gavin

J'ai également rencontré un problème similaire dans Android Studio 1.5.1 et Gradle 1.5.0. Je dois juste supprimer les dépendances indésirables des bibliothèques qui peuvent être automatiquement ajoutées au fichier build.gradle de mon application. L'un d'entre eux était: compiler 'com.google.Android.gms: play-services: 8.4.0'. Donc, pour les meilleures pratiques, essayez d’inclure uniquement une bibliothèque de services de lecture spécifique, comme pour les annonces uniquement.

dependencies {
    compile 'com.google.Android.gms:play-services-ads:8.4.0'
}

Bien que

defaultConfig {
    multiDexEnabled true
}

cela résoudra également le problème, mais fournit beaucoup de notes dans Gradle Console, ce qui rend difficile la recherche d'autres problèmes réels pendant la construction.

8
raul

vous pouvez voir la documentation de Android

Android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

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

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.Android.support:multidex:1.0.0'
}

Manifest.xml

<?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>
4
David Hackro

Dans mon cas, modifiez buildToolsVersion de "24" à "23.0.2" pour résoudre le problème.

3
Ayman Mahgoub

J'utilise AS 1.5.1 et j'ai rencontré le même problème. Mais nettoyer le projet ne se fera pas, alors j'ai essayé quelque chose.

  • projet propre
  • redémarrer l'AS
  • Projet de synchronisation

Cela a fonctionné avec moi, alors j'espère que cela aide.

3
kcNeko

Dans mon cas, l’exception s’est produite car toutes les extensions du service Google Play n’ont pas la même version, comme suit:

 compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:8.3.0'

Cela a fonctionné quand j'ai changé ceci en

compile 'com.google.Android.gms:play-services-plus:9.8.0'
 compile 'com.google.Android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.Android.gms:play-services-analytics:9.8.0'
2
Uma Achanta

Commencez par supprimer les fichiers intermédiaires. VOTRE DOSSIER APP\app\build\intermediates OR Nettoyez votre projet, puis reconstruisez-le.

Ajouter

multiDexEnabled true

c'est à dire.

defaultConfig {
        multiDexEnabled true
}

C'est un travail pour moi

1

J'ai eu le même problème quand je suis revenu à l'ancienne version via git et que cette version avait la bibliothèque précédente .jar d'une tierce partie api, et pour une raison quelconque, il est apparu que les deux fichiers jar du même sdk, des versions différentes se trouvaient dans le dossier/libs .

1
lxknvlk

J'ai résolu ce problème en changeant pour utiliser le dernier buildToolsVersionname__

Android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}
1
Tung Duong

la réponse en écriture est dans gradle put defaultConfig {multiDexEnabled true} then nom de l'application dans le manifeste Android: name = "Android.support.multidex.MultiDexApplication" souhaite que cette réponse soit très sensible à Quelqu'un

0
Mosa

J'ai résolu ce problème en ajoutant: Dans build.gradle:

defaultConfig {
    multiDexEnabled true
}

dans local.properties,

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

mentionnez la dépendance:

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

Nettoyer et reconstruire.

0
Crime_Master_GoGo

ce code a résolu le problème

defaultConfig {
        multiDexEnabled true
}

Pour la meilleure façon de mettre en œuvre Google Sign in, visitez: Google sign in Android

Essayez aussi

dexOptions {
        javaMaxHeapSize "4g" 
    }

Conservez également le même numéro de version pour différents services.

0
user6435056

Si les différentes dépendances ont un même fichier jar, cette erreur de génération est également provoquée.

Par exemple:

compile('com.a.b:library1');
compile('com.c.d:library2');

Si "library1" et "library2" ont un même fichier jar nommé xxx.jar, cela provoquera une telle erreur.

0
wqycsu

J'ai changé quelques pngs et le numéro de build dans le classement et maintenant je comprends cela. Aucune quantité de nettoyage et de redémarrage n'a aidé. La désactivation d'Instant Run l'a corrigé pour moi. YMMV

0
SteelBytes

Si vous utilisez la dernière version de gradle, c.-à-d. classpath 'com.Android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', essayez de mettre à jour le dernier référentiel de support à partir du gestionnaire de SDK et régénérez l'ensemble du projet.

0
goonerDroid

Si vous avez besoin d'ajouter cette référence pour cordova plugin, ajoutez la ligne suivante dans votre fichier plugin.xml.

<framework src="com.Android.support:support-v4:+" />
0
Adexe Rivera

J'avais la même option et dès que j'ai désactivé Instant Run, cela fonctionnait correctement sur mon périphérique API16, mais sur le périphérique API24, cela fonctionnait parfaitement avec Instant Run.

J'espère que cela aide quelqu'un qui a le même problème

0
x10sion

Incase 'Instant Run' est activé, puis désactivez-le simplement.

0
Ravid Rinek

Cela m'est arrivé à cause d'une fuite de mémoire Eclipse. Je devais redémarrer mon ordinateur.

0
Ronen Festinger

Cliquez simplement sur Construire - Modifier les types de construction - Onglet Propriétés - Version du type de construction et rétrogradez-le à la version 23.0.1. Cliquez sur OK. Cela fonctionne pour Android studio 1.5. Cela a fonctionné pour moi.

0
Dima Rowland