Java terminó con un valor de salida distinto de cero 2 – Android Gradle

Recibo este error al ejecutar mi aplicación de Android (lo limpié y luego lo construí, pero el error aún está presente)

  • Sincronización: OK
  • Hacer proyecto: OK
  • Limpio: OK
  • Ejecutar: error

Error: ejecución fallida para la tarea ‘: aplicación: dexDebug’ .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command’ C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe ” finalizado con un valor de salida distinto de cero 2

Mi archivo gradle:

apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.rzr.rzevallosr.miappdepruebas" minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } repositories { mavenCentral() flatDir { dirs 'libs' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // This library handles authentication and authorization compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar' // This library handles music playback compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar' compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.android.support:recyclerview-v7:21.0.+' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' compile 'com.squareup.okhttp:okhttp:2.2.0' compile files('libs/spotify-web-api-android-master-0.1.0.jar') compile files('libs/okio-1.3.0.jar') } 

EDITAR: No vi “comstackr fileTree (dir: ‘libs’, include: [‘* .jar’])” estaba comstackndo dos veces mis bibliotecas, así que solo comento:

 //compile 'com.squareup.retrofit:retrofit:1.9.0' //compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' //compile 'com.squareup.okhttp:okhttp:2.2.0' //compile files('libs/spotify-web-api-android-master-0.1.0.jar') //compile files('libs/okio-1.3.0.jar') 

y funciona bien

Posiblemente, este problema se deba a que excede el límite de dex de métodos 65K impuesto por Android. Este problema se puede resolver limpiando el proyecto y eliminando algunas bibliotecas y métodos no utilizados de dependencias en build.gradle, O agregando soporte multidex.

Por lo tanto, si tiene que mantener las bibliotecas y los métodos, puede habilitar el soporte para varios dex al declararlo en la configuración de gradle.

 defaultConfig { // Enabling multidex support. multiDexEnabled true } 

Puede leer más sobre soporte multidex y desarrollar aplicaciones con más de 65 mil métodos aquí .

Para mí, el problema era que había puesto un código de biblioteca complie innecesario en build.gradle

 dependencies { compile 'com.google.android.gms:play-services:7.5.0' } 

que estaba causando más de 65k métodos, así que quítelo, sincronice gradle, limpié el proyecto y luego vuelva a ejecutar y luego este error se detuvo. Necesitaba solo mapas y gcm, así que puse estas líneas y el proyecto sincronizado

 compile 'com.google.android.gms:play-services-gcm:7.5.0' compile 'com.google.android.gms:play-services-location:7.5.0' 

Hola gente, una vez más me encontré con este problema y esta vez fue por cambiar la versión de herramientas de comstackción y realmente me requirió habilitar multidex. Así que agregué el archivo build.gradle de mi aplicación.

 defaultConfig { applicationId "com.am.android" minSdkVersion 13 targetSdkVersion 23 // Enabling multidex support. multiDexEnabled true } dexOptions { incremental true javaMaxHeapSize "2048M" jumboMode = true } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:multidex:1.0.1' } 

Y cree una clase que amplíe la clase de aplicación e incluya este método dentro de la clase.

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

también incluir en el método OnCreate también

 @Override public void onCreate() { MultiDex.install(this); super.onCreate(); } 

Por si acaso, si alguien todavía está luchando con esto y no tiene idea de por qué sucede esto y cómo solucionarlo. De hecho, este error

Error: ejecución fallida para la tarea ‘: aplicación: dexDebug’. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Proceso ‘comando’ C: \ Archivos de progtwig \ Java \ jdkx.x.x_xx \ bin \ java.exe ” terminado con valor de salida distinto de cero 2

puede tener muchas razones para suceder, pero ciertamente no es algo relacionado con su versión de JDK, así que no pierda el tiempo en la dirección equivocada. Estas son dos razones principales para que esto suceda

  1. Tiene la misma biblioteca o archivo jar incluidos varios lugares y algunos de ellos en conflicto entre sí.
  2. Estás a punto o ya has superado el límite del método 65k

El primer caso se puede solucionar de la siguiente manera: averigüe qué dependencias ha incluido varias veces. Para hacer esto, ejecuta el siguiente comando en la terminal de estudio de Android

 gradlew -q dependencies yourProjectName_usually_app:dependencies --configuration compile 

esto devolverá todas las dependencias pero los archivos jar que incluyas desde la carpeta lib intentan eliminar la duplicación marcada con asterisco (*), esto no siempre es posible pero en algunos casos aún puedes hacerlo, después de esto trata de excluir módulos que están incluidas muchas veces, puedes hacerlo así

 compile ('com.facebook.android:facebook-android-sdk:4.0.1'){ exclude module: 'support-v4' } 

Para el segundo caso, cuando exceda la sugerencia de límite de método, trate de minimizarlo eliminando las bibliotecas incluidas (note sonidos como la primera solución) si no hay manera de hacerlo agregue multiDexEnabled verdadero a su configuración predeterminada

 defaultConfig { ... ... multiDexEnabled true } 

esto aumenta el límite del método, pero no es lo mejor debido a posibles problemas de rendimiento. IMPORTANTE agregar solo multiDexEnabled true a defaultConfig no es suficiente, de hecho, en todos los dispositivos que ejecutan android <5 Lollipop resultará en un comportamiento inesperado y NoClassDefFoundError . cómo resolverlo se describe aquí

No sabía (para entonces) que “comstackr fileTree (dir: ‘libs’, include: [‘* .jar’])” comstack todo lo que tiene la extensión jar en la carpeta libs, así que simplemente comento (o elimino) esto líneas:

 //compile 'com.squareup.retrofit:retrofit:1.9.0' //compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' //compile 'com.squareup.okhttp:okhttp:2.2.0' //compile files('libs/spotify-web-api-android-master-0.1.0.jar') //compile files('libs/okio-1.3.0.jar') 

y funciona bien ¡Gracias de cualquier manera! Mi error.

Tuve el mismo problema y arreglé la eliminación de la biblioteca que eran innecesarios

 compile fileTree(dir: 'libs', include: ['*.jar']) 

Eliminé esa biblioteca y pude ejecutar el proyecto sin ningún problema.

El mío se resolvió habilitando multiDex para comstackciones de depuración.

 defaultConfig { multiDexEnabled true } 

Rechazo el JDK integrado (en 32 bits) porque el JDK incrustado es de 64 bits

Haga clic con el botón secundario en su proyecto -> Abrir configuración del módulo -> Ubicación del SDK -> Desmarque Usar JDk incorporado y luego configure su ruta JDK, por ejemplo, en Ubuntu / usr / lib / jvm / java-8-openjdk-i386

Posible problema: ha excedido el límite de dex 65k métodos, ¿puede haber agregado alguna biblioteca o varios métodos antes de que ocurriera el problema?

Si ya ha actualizado su SDK y también está utilizando google-play-services, entonces debe encargarse de la dependencia porque hay algún tipo de conflicto con:

Sigue lo siguiente: comstack ‘com.google.android.gms: play-services: +’ Reemplazar por comstackción ‘com.google.android.gms: play-services: 6.5.87’

Nota: Aquí ‘6.5.87’ es la versión de google-play-service. Espero que ayude ..

Creo que son los conflictos del archivo .jar en su proyecto.

¡He eliminado android-support-v4.jar de la carpeta libs y funciona!

si su proyecto da error, verifique en su archivo build.gradle

dependencias {

}

En mi caso, el problema era que la nueva biblioteca (dependencia gradle) que había agregado dependía de otras dependencias y dos de esas dependencias subyacentes estaban en conflicto / chocando con algunas dependencias de otras bibliotecas / dependencias en mi script de comstackción. Específicamente, agregué Apache Commons Validator (para validación de correo electrónico) y dos de sus dependencias (Apache Commons Logging y Apache Commons Collections ) entraron en conflicto con las utilizadas por Robolectric (porque diferentes versiones de las mismas bibliotecas estaban presentes en mi comstackción). Así que excluí esas versiones conflictivas de dependencias ( modules ) al agregar la nueva dependencia (el Validator ):

 compile ('commons-validator:commons-validator:1.4.1') { exclude module: 'commons-logging' exclude module: 'commons-collections' } 

Puede ver las dependencias de su (s) módulo (s) gradle (puede tener solo un módulo en su proyecto) usando el siguiente comando gradle (utilizo el gradle wrapper que se crea para usted si ha creado su proyecto en Android Studio / Intellij Idea). Ejecute este comando en el directorio raíz de su proyecto:

./gradlew: YOUR-MODULE-NAME: dependencias

Después de agregar esas directivas de exclude y volver a intentar ejecutar, recibí un error de duplicate file para NOTICE.txt que es usado por algunas bibliotecas de Apache commons como Logging and Collections. Tuve que excluir ese archivo de texto al empacar. En mi build.gradle, agregué:

 packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/notice.txt' exclude 'META-INF/NOTICE.txt' } 

Resultó que la nueva biblioteca (el Validator ) puede funcionar con versiones ligeramente más antiguas de sus dependencias / módulos (que ya están importadas en mi ruta de comstackción por otra biblioteca (Robolectric)). Este fue el caso con esta biblioteca específica, pero otras bibliotecas podrían estar utilizando la API más reciente de las dependencias subyacentes (en cuyo caso debe intentar ver si las otras bibliotecas que dependen del módulo / dependencia en conflicto pueden trabajar con la versión más nueva (excluyendo la versión anterior del módulo / dependencia en las entradas de esas bibliotecas)).

En mi caso, recibí este error cuando hay dos o más bibliotecas en conflicto (misma biblioteca pero diferentes versiones). Compruebe su aplicación build.gradle en el bloque de dependencias.

Hay dos alternativas que funcionarán con seguridad:

  1. Limpia tu proyecto y luego comstack.

Si el método anterior no funcionó, intente el siguiente.

  1. Agregue lo siguiente al archivo build.gradle a nivel de la aplicación

     defaultConfig { multiDexEnabled true } 

Actualizar mi Java SDK a la última versión 1.7.0_79 y actualizar la SDK Location del SDK Location en Project Structure solucionó el problema.

Mi problema era que aparte de tener

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command’ /Library/Java/JavaVirtualMachines/jdk1.X.X_XX .jdk / Contents / Home / bin / java ” terminado con un valor de salida distinto de cero 2

También tuve este rastro:

Error de traducción no detectada: java.lang.IllegalArgumentException: ya se agregó: Lcom / mypackage / ClassX;

El problema era que estaba agregando la misma clase en dos bibliotecas diferentes. Al eliminar el archivo clase / jar de una de las bibliotecas, el proyecto se ejecuta correctamente

Para mí, estaba agregando todas las dependencias de playstore

comstackr ‘com.google.android.gms: play-services: 8.4.0’

Pero solo necesitaba google map, así que lo hice más específico y se resolvió el error.

comstackr ‘com.google.android.gms: play-services-maps: 8.4.0’

en mi caso, el problema fue la versión de herramientas de comstackción que era 23.0.0 rc3 y cambié a 22.0.1 y se solucionó mi problema.

Puede que esté utilizando un cable de baja calidad / cable defectuoso para conectar su dispositivo a la PC, lo reemplacé y funcionó para mí.

Este error se debe al uso de más bibliotecas. En mi caso, ‘comstackr’ com.google.android.gms: play-services-9.4.0 ‘provocó este error. Para evitar este error, use las bibliotecas necesarias. Por ejemplo, si lo desea para usar Maps en su aplicación. Luego use comstackr ‘com.google.android.gms: play-services-maps: 9.4.0’.mientras agrega la dependencia de los servicios de google play, especifique las bibliotecas necesarias solamente. Por defecto, incluye todas las bibliotecas.

En su archivo gradle.build , use esto

 "compile fileTree(dir: 'libs', include: ['*.jar'])" 

Y funciona bien

Si quiere ver exactamente qué está causando el error, intente construir su proyecto a través de un terminal gradle, como este ./gradlew assembleDebug --stacktrace --debug . He visto el siguiente error en mi caso com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

Esto sucedió cuando intentaba integrar Google Maps en mi proyecto. Para solucionarlo, simplemente revisé las bibliotecas que estaba incluyendo

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

Simplemente lo cambié a

compile 'com.google.android.gms:play-services-maps:9.8.0'

y el problema se fue

Tuve el mismo error después de convertir mi proyecto a Kotlin . Mi problema fue que mi ubicación jre fue cambiada a una ruta no válida durante el proceso (me pregunto por qué esto podría pasar … me hizo perder el tiempo). Solucionado al hacer esto:

 File > Project Structure > SDK Location 

Desmarcar la opción Use embedded JDK , que señalaba una instalación JDK antigua, y seleccionar la correcta:

 /home/my_user/jdk1.8.0_101 

Después de cambiar esto, el error desapareció

TRABAJÓ PARA MI 🙂

Actualicé el java a la última versión 8 anteriormente era 7 y luego voy a OPEN MODULE SETTING haciendo clic derecho en el proyecto y cambié la ruta jdk a / usr / lib / jvm / java-8-oracle el nuevo java 8 instalado. Y reinicia el estudio

verificar en / usr / lib / jvm para el nombre de la carpeta java 8

Estoy usando ubuntu enter image description here