studio - exception en android
Error: ejecuciĆ³n fallida para la tarea '': app: transformClassesWithDexForDebug'' en android studio (15)
Moví mis proyectos de eclipse a Android Studio. Mientras ejecuto una de mi aplicación, aparece el siguiente error. No puedo encontrar ninguna solución. También he habilitado multidex.
Error: ejecución fallida para la tarea '': app: transformClassesWithDexForDebug''. com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Proceso ''comando'' C: / Archivos de programa / Java / jdk1.7.0_79 / bin / java.exe '''' terminado con un valor de salida distinto de cero 1
también mi archivo gradle está debajo
apply plugin: ''com.android.application''
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 9
targetSdkVersion 21
multiDexEnabled true
}buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard- android.txt''), ''proguard-project.txt'', ''proguard-google-api-client.txt''
}
}
}
dependencies {
compile ''com.android.support:support-v4:23.4.0''
compile ''com.google.android.gms:play-services:+''
compile ''com.google.http-client:google-http-client-gson:1.20.0''
compile ''com.google.code.gson:gson:2.1''
compile ''com.android.support:appcompat-v7:23.4.0''
compile files(''libs/activation.jar'')
compile files(''libs/additionnal.jar'')
compile files(''libs/android-support-v7-cardview.jar'')
compile files(''libs/android-support-v7-recyclerview.jar'')
compile files(''libs/commons-logging-1.1.1.jar'')
compile ''com.google.api-client:google-api-client:1.18.0-rc''
compile ''com.google.api-client:google-api-client-android:1.18.0-rc''
compile ''com.google.api-client:google-api-client-appengine:1.18.0-rc''
compile ''com.google.http-client:google-http-client:1.18.0-rc''
compile ''com.google.http-client:google-http-client-android:1.18.0-rc''
compile ''com.google.http-client:google-http-client-appengine:1.18.0-rc''
compile ''com.google.oauth-client:google-oauth-client:1.18.0-rc''
compile ''com.google.oauth-client:google-oauth-client-appengine:1.18.0-rc''
compile files(''libs/google-api-client-gson-1.18.0-rc.jar'')
compile files(''libs/google-api-client-jackson2-1.18.0-rc.jar'')
compile files(''libs/google-api-client-java6-1.18.0-rc.jar'')
compile files(''libs/google-api-client-servlet-1.18.0-rc.jar'')
compile files(''libs/google-http-client-jackson2-1.18.0-rc.jar'')
compile files(''libs/google-http-client-jdo-1.18.0-rc.jar'')
compile files(''libs/google-oauth-client-java6-1.18.0-rc.jar'')
compile files(''libs/google-oauth-client-jetty-1.18.0-rc.jar'')
compile files(''libs/google-oauth-client-servlet-1.18.0-rc.jar'')
compile files(''libs/GraphView-4.0.1.jar'')
compile files(''libs/httpclient-4.0.1.jar'')
compile files(''libs/httpcore-4.0.1.jar'')
compile files(''libs/jackson-core-2.1.3.jar'')
compile files(''libs/jetty-6.1.26.jar'')
compile files(''libs/jetty-util-6.1.26.jar'')
compile files(''libs/jsr305-1.3.9.jar'')
compile files(''libs/jxl.jar'')
compile files(''libs/mail.jar'')
compile files(''libs/transaction-api-1.1.jar'')
}
Error: ejecución fallida para la tarea '': app: transformClassesWithDexForDebug''. com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Proceso ''comando'' C: / Archivos de programa / Java / jdk1.7.0_79 / bin / java.exe '''' terminado con un valor de salida distinto de cero 1
El error superior ocurre debido a muchas razones. Entonces puedo explicar por qué ocurre este error y cómo resolverlo.
RAZÓN 1: Duplicado del nombre del archivo de la clase
SOLUCIÓN:
cuando refactorice algunos de sus archivos de clase a un proyecto de biblioteca. y esa vez escribes el nombre del archivo de la clase. Por lo tanto, verifica que no tengas ningún nombre duplicado
Razón 2: cuando tienes mucha memoria caché
SOLUCIÓN:
En algún momento si tienes mucha memoria caché, entonces este error ocurre, así que resuélvelo. ve a File/Invalidate caches / Restart
luego selecciona Invalidate and Restart
limpiará tu memoria caché.
RAZÓN 3: Cuando hay un error interno o versión beta utilizada para volver a la versión estable.
SOLUCIÓN:
La solución es sencilla: vaya al menú Compilar y haga clic en Clean Project
y, después de limpiar, haga clic en Rebuild Project
.
RAZÓN 4: Cuando la memoria de la configuración del sistema es baja.
SOLUCIÓN:
abra el Administrador de tareas y detenga la otra aplicación que no se usa más en ese momento, por lo que liberará el espacio y resolverá OutOfMemory
.
RAZÓN 5: El problema es que su método cuenta ha excedido de 65K.
SOLUCIÓN:
abra su archivo Project build.gradle
add
defaultConfig {
...
multiDexEnabled true
}
y en las dependencias agregue debajo de la línea.
dependencies
{
compile ''com.android.support:multidex:1.0.0''
}
Clases de nombres duplicados
me gusta
class BackGroundTask extends AsyncTask<String, Void, Void> {
y
class BackgroundTask extends AsyncTask<String, Void, Void> {
En mi caso, tuve 2 proyectos A
y B
Y actualicé a gradle 4.5
.
A
dependía de B
pero ambos tenían referencias de mi 3rd party jar
Estaba recibiendo este error
com.android.tools.r8.errors.CompilationError: tipo de programa ya presente: com.mnox.webservice.globals.WebServiceLightErrorHashCode
Tipo de programa ya presente: com.mnox.webservice.globals.WebServiceLightErrorHashCode
Arreglarlo
- Eliminé el jarro duplicado
- Usé la
api
en el archivoB
build.gradle para que se haga referencia a ella enA
La otra causa raíz puede ser si ha actualizado a gradle 4.5
y utilizado la implementation
lugar de api
en su commons build.gradle
Esto puede deberse a la siguiente razón:
uno de los archivos jar dentro del proyecto estaba usando una versión anterior de los servicios de google play.
use
multiDexEnabled true
endefaultconfig
Sea específico con las clases que agrega en dependencias. me gusta
compilar ''com.google.android.gms: play-services-maps: 8.4.0''
No es como compilar ''com.google.android.gms:play-services:+''
Gracias a @Ironman por su respuesta completa, sin embargo, debo agregar mi solución de acuerdo con lo que he experimentado al enfrentar este problema.
En build.gradle (Módulo: aplicación):
compile ''com.android.support:multidex:1.0.1''
...
dexOptions {
javaMaxHeapSize "4g"
}
...
defaultConfig {
multiDexEnabled true
}
Además, ponga lo siguiente en el archivo gradle.properties:
org.gradle.jvmargs=-Xmx4096m -XX/:MaxPermSize/=512m -XX/:+HeapDumpOnOutOfMemoryError -Dfile.encoding/=UTF-8
Debo mencionar, estos números son para mi configuración de portátil (MacBook Pro con 16 GB de RAM) por lo tanto, edítelos como su configuración.
He probado este para más proyectos y funcionó para mí. tenga en cuenta que la solución puede configurar su aplicación para multidex:
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
...
minSdkVersion 9
targetSdkVersion 25
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}}
dependencies {
compile ''com.android.support:support-v4:25.1.0''
compile ''com.google.android.gms:play-services:8.3.0''
...
}
He probado este y funcionó para mí. Espero que funcione para otros también.
- Abra el archivo del módulo build.gradle
- rebaja tu versión de SDL de 25 a 24 o 23
- agregar ''multiDexEnabled true''
- Comente esta línea: compile ''com.android.support:appcompat-v7:25.1.0'' (si está en ''dependencias'')
- Sincronice su proyecto y listo para funcionar.
Aquí he adjuntado una captura de pantalla para explicar las cosas. Sigue estos pasos
feliz de ayudar.
Gracias.
Intenté todo, pero aún así este error no irá, hasta que cambie mi versión de JDK .
Mi versión JDK fue 7, y después de que lo cambié a 8, el error desapareció, puedes probarlo si nada funciona.
Marque si Multidex está habilitado o no en su build.gradle (nivel de la aplicación) en dependencias. Si no lo coloca como se muestra a continuación
dependecies{
multidexEnabled true
}
Compruebe su gradle.properties (nivel de la aplicación) .si ve el código a continuación
#org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
eliminar # antes de la línea, entonces debería ser así
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Mi configuración Captura de pantalla:
Gracias a esta publicación
Simplemente apague la ejecución instantánea en su configuración. Puede buscar fácilmente la palabra clave "instantánea" como mostré y cambiaría a la ventana que desea.
O puedes probar esto -
Extend your Application class with MultiDexApplication instead of Application !
Por favor agregue esto en su archivo gradle
android {
...
defaultConfig {
...
multiDexEnabled true
}
}
Y también agrega la dependencia a continuación en tu gradle
dependencies {
compile ''com.android.support:multidex:1.0.1''
}
O bien, otra opción sería: en su archivo de manifiesto, agregue el paquete MultiDexApplication de la biblioteca de soporte multidex en la etiqueta de la aplicación.
<?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>
Solo vale la pena mencionar que, aunque otros sugieren que se atempere con los archivos, pude resolver este problema instalando un complemento faltante (marco iónico)
Espero que ayude a alguien.
plugin cordova agregar cordova-support-google-services --save
Una solución temporal es colocar el siguiente código en el módulo build.gradle
:
android {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
}
Y sincroniza el proyecto.