Error de Android: error en la ejecución de la tarea ': aplicación: transformClassesWithDexForRelease'

191

El problema es que puedo ejecutar mi aplicación cuando cambio al debugmodo pero falla cuando cambio al releasemodo.

Excepción:

**FAILURE: Build failed with an exception.**
> Execution failed for task ':app:transformClassesWithDexForRelease'.
> 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

Cuando ejecuté el comando gradle build con stacktrace, esto es lo que obtengo

./gradlew app:transformClassesWithDexForRelease --stacktrace

> 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

*Exception is:*

>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
            at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
            at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
            at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
            at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
            at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
            at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
            at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
            at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
            at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
            at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
            at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
            at org.gradle.internal.Factories$1.create(Factories.java:22)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
            at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
            at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
            at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
            at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
            at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
            at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
            at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
            at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
            at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
            at org.gradle.util.Swapper.swap(Swapper.java:38)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
            at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
            at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
            at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    Caused by: java.lang.RuntimeException: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:54)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:57)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47)
            at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
            at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)
            at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
            ... 68 more
    Caused by: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:422)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:178)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:174)
            at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55)
            ... 77 more
    Caused by: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1472)
            at com.android.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)
            at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)
            ... 80 more
    Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)
            ... 82 more
    Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1464)
            at com.android.builder.core.AndroidBuilder$2.call(AndroidBuilder.java:1456)
    Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
            at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
            at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:41)
            ... 2 more

estoy usando

  • Android Studio 2.0 Beta 6
  • Versión de Java: Java (TM) SE Runtime Environment (build 1.8.0_73-b02)
  • Versión Gradle: com.android.tools.build:gradle:2.0.0-beta6
  • Y tengo Multidex habilitado

Mi archivo build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'

android {

    def VERSION_CODE = 52
    def VERSION_NAME = "1.0"
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.example.app"
        manifestPlaceholders = [appName: "Personal App"]
        minSdkVersion 14
        targetSdkVersion 23
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
        versionCode VERSION_CODE
        versionName VERSION_NAME

        // Enabling multidex support.
        multiDexEnabled true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        encoding = 'UTF-8'
    }

    signingConfigs {
        livekeystore {
            storeFile file('../key.jks')
            keyAlias 'livekeystore'
            keyPassword '123asd'
            storePassword '123asd'
        }
    }


    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.burgerking

            manifestPlaceholders = [googleMapsKey: "@string/release_google_map_key", appNameSuffix: ""]
        }

        debug {
            applicationIdSuffix '.dev'
            debuggable true
            minifyEnabled false
            shrinkResources false
            zipAlignEnabled false

            manifestPlaceholders = [googleMapsKey: "@string/debug_google_map_key", appNameSuffix: ' (Dev-' + VERSION_CODE + ')']

        }
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "4g" // 2g should be also OK
    }

    useLibrary 'org.apache.http.legacy'

}

repositories {
    maven { url 'https://mint.splunk.com/gradle/' }
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.4.2'
        classpath 'com.newrelic.agent.android:agent-gradle-plugin:4.244.0'
    }
}


dependencies {
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'
    compile 'com.android.support:cardview-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-base:8.4.0'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.0.5'
    compile 'com.facebook.android:facebook-android-sdk:4.1.1'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup:pollexor:2.0.2'
    compile 'com.makeramen:roundedimageview:2.1.0'
    compile 'com.mcxiaoke.volley:library:1.0.16@aar'
    compile files('libs/now-auth-api.jar')
    compile 'com.jakewharton:butterknife:5.1.2'
    compile 'com.github.ksoichiro:android-observablescrollview:1.2.0'
    compile 'io.card:android-sdk:5.3.0'
    compile 'com.appboy:android-sdk-ui:1.10.3'
    testCompile 'junit:junit:4.11'
    testCompile('org.mockito:mockito-core:1.9.5') {
        exclude group: 'org.hamcrest'
    }
    testCompile('org.powermock:powermock-module-junit4:1.5') {
        exclude group: 'org.hamcrest'
    }
    testCompile('org.powermock:powermock-api-mockito:1.6.2') {
        exclude group: 'org.hamcrest'
    }

    compile 'me.grantland:autofittextview:0.2.1'

}

Parece que puedo hacer que mi versión de lanzamiento funcione si la elimino minifyEnabled true. ¿Por qué es eso? ¿Hay otra forma de resolverlo?

Sheraz Ahmad Khilji
fuente
¿podría publicar el archivo build.gradle de su aplicación?
Harisewak
@ Harisewak He actualizado la pregunta, por favor échale un vistazo ahora
Sheraz Ahmad Khilji
Sí @Sheraz, tienes razón en que cambiar minifyEnabled a falso resuelve el problema. Leí esto en el documento: 'tienes que habilitar minifyEnabled para activar la reducción de código, y luego shrinkResources para activar la reducción de recursos. Si aún no ha estado usando minifyEnabled, asegúrese de hacerlo funcionar antes de agregar también shrinkResources, ya que es posible que deba editar su archivo proguard-rules.pro para asegurarse de que cualquier método al que acceda con reflejo, etc. archivo '( tools.android.com/tech-docs/new-build-system/resource-shrinking ). Vea si este es el caso.
Harisewak
1
@ Harisewak todavía no resuelve el problema si ejecuto la tarea con depuración, entonces Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef
aparece
Tengo el mismo problema con mi proyecto. Si utilizo com.android.tools.build:gradle:1.3.0, puedo compilar. Tan pronto como uso el 2.0.0 me da el mismo problema
Santacrab

Respuestas:

185

Lo arreglé solo con este código.

propiedades locales

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

y deberías hacer esto cambiando en gradle

defaultConfig {
    applicationId "yourProjectPackage"
    minSdkVersion 15
    versionCode 1
    versionName "1.0"
    targetSdkVersion 23

    multiDexEnabled true //important
}
aemre
fuente
44
"local.properties" es ese un nombre de archivo o un valor de configuración? ¿Dónde (por ejemplo: en qué carpeta) se encuentra dentro del proyecto?
Ulises Alves
1
El archivo local.properties va en el nivel raíz del proyecto. si tiene un problema con multiDex -> developer.android.com/studio/build/multidex.html
aemre el
Acabo de insertar multiDexEnabled true en mi build.gradle y la magia se hizo. Gracias.
Marcelo Gumiero
No sé qué significa todo esto, ¡pero funcionó para mí!
DaveNOTDavid
En API <21, multiDexEnabledsin extender la Applicationclase desde MultiDexApplicationdará lugar a NoClassDefFoundErrors.
Miha_x64
82

Si realiza la multiDexEnabled = trueconfiguración predeterminada de la aplicación, obtendrá el resultado deseado.

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
    multiDexEnabled = true
}
Rahul
fuente
Ese no es el único paso para permitir Multidex. Y solo lo necesitas cuando ves un DexException, de todos modos. developer.android.com/studio/build/multidex.html
OneCricketeer
45

Para mí, el problema se resolvió después de eliminar el jararchivo de mi proyecto. parece que uno de los jararchivos dentro de mi proyecto estaba usando una versión anterior de google play services.

Sheraz Ahmad Khilji
fuente
mismo problema con jackrabbit-standalone-2.12.2.jar. Si lo agrego al proyecto, entonces surge el problema.
Alexeev Valeriy
1
@ MikeOx Actualicé algunas herramientas de Android, y como resultado terminé con dos versiones de algunos archivos jar, por ejemplo, mockable-android-24.jar y mockable-android-25.jar. Eliminar los más antiguos corrigió estos errores de compilación para mí.
parvus
pero no estoy usando ningún archivo jar, entonces por qué estoy enfrentando este problema
Sr. Mad
15
¿Puede proporcionar más detalles para esta solución
Ivan Milisavljevic
@IvanMilisavljevic Puede usar Gradle ahora, no archivos JAR. developers.google.com/android/guides/setup#split
OneCricketeer
39

Recibí también el mismo error:

Error: Error de ejecución para la tarea ': aplicación: 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.8.0_60 \ bin \ java.exe '' finalizó con un valor de salida distinto de cero 1

Bueno, arreglé esto con la ayuda de los siguientes pasos:

  1. Abra el build.gradle de su aplicación (no el que está en la raíz del proyecto) y agregue:

    android {
    //snippet
    //add this into your existing 'android' block
    
        dexOptions {
        javaMaxHeapSize "4g"
        }
    
    //snip
    }
  2. Intenta construir de nuevo.

Nota: 4g son 4 Gigabytes y este es un tamaño de almacenamiento dinámico máximo para la operación dex.

PN10
fuente
Me salvó el día! ¡Salud!
devhermluna
Lo mejor ... He estado vagando por horas ... ¡Gracias!
MbaiMburu
33

NO NECESITO MULTIDEX, REPITO, NO NECESITO MULTIDEX


Permítanme explicarlo: Multidex es básicamente una herramienta que viene con Android, y si lo configura como verdadero, las aplicaciones con> 64,000 métodos pueden compilarse usando un proceso de compilación ligeramente alterado. Sin embargo, solo necesita usar multidex si su error es así:

salida de escritura de problemas: demasiadas referencias de campo: 131000; max es 65536. Puede intentar usar la opción --multi-dex.

o así

La conversión al formato Dalvik falló: no se puede ejecutar dex: la identificación del método no está en [0, 0xffff]: 65536

Pero eso no es el caso aquí! El problema aquí (al menos para mí) está siendo causado por las dependencias de su archivo build.gradle.

LA SOLUCIÓN: Utilice dependencias específicas, ¡no solo importe una sección completa de dependencias!

Por ejemplo, si necesita la dependencia de Play Services para la ubicación, solo impórtela para la ubicación.

HACER:

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

NO HACER:

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

Otro problema que podría estar causando esto puede ser algún tipo de biblioteca externa que esté utilizando, es decir, una versión anterior de su dependencia. Siga estos pasos en ese caso:

  1. Vaya al administrador del SDK e instale las actualizaciones de sus dependencias.
  2. Asegúrese de que su archivo build.gradle muestre la última versión. Para obtener la última versión, use este enlace: https://developers.google.com/android/guides/setup
  3. Edite su biblioteca (o instale una versión actualizada si existe), para hacer referencia a la última versión

Sé que esta pregunta es vieja, pero necesito obtener esta respuesta, porque usar multidex sin ninguna razón podría causar ANR para su aplicación. SÓLO use multidex si está seguro de que lo necesita y comprende lo que es.

Yo mismo pasé horas tratando de resolver este problema sin multidex, y solo quería compartir mis hallazgos, espero que esto ayude

Ruchir Baronia
fuente
¡Brillante! ¡Funciona perfectamente!
stoefln
1
¿Cómo sabes qué dependencia específica causa el problema? He agregado com.facebook.android:audience-network-sdk:4.+y no puedo construir desde entonces.
Ciberman
¡Salvaste mi día!
Rowan
1
Una respuesta tan estúpida. Si tiene muchas dependencias, necesitará Multi Dex de todos modos. simplemente agregue las bibliotecas de kotlin, un par de servicios de google ( com.google.android.gms:play-services-*:*), servicios de firebase, crashlytics, gson, androidx (bibliotecas de soporte), cardview, recyclerview, android.material: material. NO ES POSIBLE SIN MULTI DEX (¿te gusta el bloqueo de mayúsculas? No lo hago, así que por favor no contestes tales preguntas aquí la próxima vez ...)
usuario155
¡Algún cuerpo es inteligente aquí! ¡Exactamente!, No es un error multidex, el error multidex es diferente y puede ser de algunas dependencias. y @ user155, Ruchir no es responsable por las dependencias PROBLEMA Y me gusta capslocks :)!
Hossein
25

Agregue multiDexEnabled verdadero en su configuración predeterminada en el nivel de la aplicación gradle.

defaultConfig {
    applicationId "your application id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
Mwongera808
fuente
24

Tuve el problema similar en mi aplicación. Aquí esta lo que hice.

1.Agregue esto para build.gradle en el módulo: aplicación

multiDexEnabled = true

Entonces el código sería como:

    android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example..."
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

Esto funcionó para mí. Espero que esto también te ayude :)

En el mismo proyecto también estaba usando Firebase . Por lo tanto, habilitar multiDexEnabled deja pasar otro problema en Firebase para dispositivos Pre Lollipop . Algunas clases de FireBase no fueron identificadas. ( No se puede obtener el proveedor com.google.firebase.provider ).
El método para resolver eso se explica aquí.

thilina Kj
fuente
minifyEnable true me da una excepción: a continuación está mi pregunta, stackoverflow.com/questions/51720018/… Por favor, ayúdame con esto.
Naveen
21

Recibí este error al actualizar los servicios de Google Play a 9.0 desde 7.5

Tener error con el siguiente:

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

Cuando cambié a

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

No hay error Prueba esto

Kalaivanan
fuente
1
gracias, he cambiado la versión para compilar 'com.google.android.gms: play-services: 8.4.0' creo que volley usa algunos servicios antiguos de Google play que no son compatibles con play-services:> 9.0
jai_b
3
Esta fue la solución para mí. El problema es que varios módulos de terceros hacen referencia a servicios de reproducción con diferentes versiones, entonces, ¿cómo se espera que estas versiones estén sincronizadas todo el tiempo? Muy raro detalle arquitectónico.
Ryan H.
1
Tu no deberías usar esto. Por favor compila selectivamente esas bibliotecas. developers.google.com/android/guides/setup#split
OneCricketeer
14

Después de actualizar a Android 3.4, comencé a recibir el error, probé todas las soluciones anteriores.

La causa principal del problema fue que la actualización de Android Studio habilitó la ejecución instantánea .

Por lo tanto, una de las soluciones que puede probar es Deshabilitar la ejecución instantánea, si está habilitada para usted, solucionó mi problema.

devDeejay
fuente
1
Tuve el mismo problema. Deshabilitar Instant Run y ​​habilitarlo nuevamente funcionó para mí.
Fogh
1
También solucioné mi problema. Eso sí, Instant Run es útil, así que espero que haya una solución mejor pronto
SimonH
1
Aaaaarg siempre habilitan esto en la actualización y siempre causa tantos problemas.
Oliver Dixon
1
Jep, esta fue la causa del problema para mí también después de poner Firebase en el proyecto, deshabilitar Instant Run finalmente me permite construirlo, ¡gracias!
Starwave
1
Deshabilitar la ejecución instantánea me funcionó con este problema. No recibí el error nuevamente.
Wesley Franks
11

Bueno, creo que la pregunta se responde y se acepta. Pero voy a escribir lo que enfrento y cómo lo resolví.

Recibí también el mismo error:

Error: Error de ejecución para la tarea ': aplicación: 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.8.0_60 \ bin \ java.exe '' finalizó con un valor de salida distinto de cero 1

No tuve la suerte de aplicar todas las configuraciones y obtuve éxito. Pero cuando intenté depurar el proyecto nuevamente. Esta vez obtuve tres errores (incluido el anterior):

Error: Advertencia de máquina virtual del servidor Java HotSpot (TM) de 64 bits: CodeCache está lleno. El compilador ha sido deshabilitado.

y

Error: Advertencia de máquina virtual de servidor Java HotSpot (TM) de 64 bits: intente aumentar el tamaño de caché de código usando -XX: ReservedCodeCacheSize =

Entonces, ¿qué hice? Solo voy a Android Studio:

Archivo> Invalidar cachés / reiniciar ..> Invalidar y reiniciar

¡Arreglo rapido!

Nota extra:

Lo que encontré en Gradle Console:

: aplicación: incrementalDebugTasks: aplicación: prePackageMarkerForDebug: aplicación: fastDeployDebugExtractor: aplicación: generateDebugInstantRunAppInfo: aplicación: transformClassesWithDexForDebug Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB. Para compilaciones más rápidas, aumente el tamaño de almacenamiento dinámico máximo para el demonio Gradle a más de 2048 MB. Para hacerlo, establezca org.gradle.jvmargs = -Xmx2048M en el proyecto gradle.properties. Para obtener más información, consulte https://docs.gradle.org/current/userguide/build_environment.html : app: transformClassesWithDexForDebug FAILED

Lea más sobre esto aquí en el blog de Oracle

fWd82
fuente
9

Acabo de escribir este código en gradle.properties y ahora está bien

org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m
Selim Özbudak
fuente
8
  1. Elimina los archivos jar de tu gradle
  2. Sincronizarlo
  3. Copia ese frasco y sincronízalo

Esto funcionó para mí.

Bharat
fuente
¿Puede ser más específico qué archivos jar? ¿Son los archivos jar dentro de nuestro proyecto gradle/wrapper?
HendraWD
44
No sé qué pasa con las personas que mencionan "los frascos". Eso no explica nada.
Seguimiento del
7

Me funcionó solo usando un servicio específico.

Por ejemplo, en lugar de usar:

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

Solía:

com.google.android.gms:play-services-places:10.0.1

Marco Muñoz
fuente
1
Igual que aquí. Resolví el problema reemplazando la compilación 'com.google.android.gms: play-services: 10.2.0' con la compilación 'com.google.android.gms: play-services-location: 10.2.0'
Sukhbir
6

Sé que es una pregunta un poco vieja, pero aún así. Cada vez que esto me sucede, es porque he incluido todas las bibliotecas de servicios de juego. Simplemente cambie play-services: xxx a play-service-: xxx en el archivo build.gradle (módulo)

KostasKol
fuente
6

Sol 1: En build.gradle:

defaultConfig {
    multiDexEnabled true
}

Limpia tu proyecto y reconstruye.

Sol 2: en local.propertiescomplemento,

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

Sol 3

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

De lo contrario, agregue los 3 en su aplicación.

Crime_Master_GoGo
fuente
5

simplemente establecer multiDexEnabled en verdadero funcionó bien.

    defaultConfig 
    {
        multiDexEnabled true     
    }
wanjiku
fuente
3

He actualizado jdk a 1.8.0_74, Android-studio a 2.1 preview 1 y agrego al archivo de aplicación

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

Yo tuve el mismo problema. Un día, el programa funcionaba perfectamente, y el siguiente no. Revisé en Github los cambios que hice. Para mí, el problema estaba en build.gradle (Módulo: aplicación) en las dependencias:

compile 'com.android.tools.build:gradle:2.1.2'

Esta línea fue la que estaba causando el problema. Después de cambiarlo, la aplicación se estaba ejecutando correctamente nuevamente

Sara Alberola
fuente
1
No funciona ninguna otra oportunidad>
Ajay Pandya
1
¿Cambiarlo a qué?
Ruchir Baronia
1
Lo borré (lo estaba revisando ahora) y siguió funcionando
Sara Alberola
2

agrega esta línea en tu build.gradle

 defaultConfig {
    ............
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    multiDexEnabled true
}
Ganesh P
fuente
44
¿Qué "línea" agregaste aquí?
OneCricketeer
2

En DefaultConfig Agregar multiDexEnabled = true

    defaultConfig {
    applicationId "com.test"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    multiDexEnabled = true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Braj Bhushan Singh
fuente
2

Entonces, el mío no se resolvió agregando el indicador multiDexEnabled. En realidad estaba allí antes de recibir el mensaje de error.

Lo que resolvió el error para mí fue asegurarme de que estaba usando la misma versión de todas las bibliotecas de servicios de reproducción. En una biblioteca tenía 11.8.0 pero en la aplicación que consume la biblioteca estaba usando 11.6.0 y esa diferencia fue la que causó el mensaje de error.

Por lo tanto, en lugar de cambiar sus bibliotecas a una versión específica como las respuestas anteriores, tal vez quiera verificar que está usando la misma versión, ya que Android Studio desaconseja explícitamente mezclar versiones.

kriztho
fuente
2

Después de mucho esfuerzo, acabo de agregar debajo de la credencial y tengo éxito

1) archivo de aplicación-> 'proguard-rules.pro'

-ignorewarnings

-keep class * {
    public private *;
}

2) Y también agregado en la aplicación -> build.gradle file

android {

        ...........................
    defaultConfig {
        ..................  

     multiDexEnabled true
    }


    buildTypes {
        debug {
            minifyEnabled true
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        innerTest {
            matchingFallbacks = ['debug', 'release']
        }

    }

...................................................
}

dependencies {
    ..................................
    implementation  'com.android.support:multidex:1.0.2'
}
Kush
fuente
2

De forma predeterminada, Android Studio tiene un tamaño de almacenamiento dinámico máximo de 1280 MB. Si está trabajando en un proyecto grande o su sistema tiene mucha RAM, puede mejorar el rendimiento aumentando el tamaño máximo de almacenamiento dinámico para los procesos de Android Studio, como el IDE principal, el demonio Gradle y el demonio Kotlin.

Si usa un sistema de 64 bits que tiene al menos 5 GB de RAM, también puede ajustar los tamaños de almacenamiento dinámico para su proyecto manualmente. Para hacerlo, sigue estos pasos:

Haga clic en Archivo> Configuración en la barra de menú (o Android Studio> Preferencias en macOS). Haga clic en Apariencia y comportamiento> Configuración del sistema> Configuración de memoria.

Para más información haga clic

https://developer.android.com/studio/intro/studio-config

ingrese la descripción de la imagen aquí

vinod
fuente
1

Simplemente cambiar los servicios de Google Play en gradle (aplicación de módulo) de 9.xx a la versión inferior 8.4.0 es trabajo para mí

Nazwa Asshiba
fuente
Esta es una señal de que todas las demás versiones de Google Play Services que usa no coinciden.
OneCricketeer
1

Si tiene el problema después de actualizar los servicios de Google Play 9.8.0, agregue esto a sus dependencias:

`dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.firebase:firebase-messaging:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'

}
ismail alaoui
fuente
1

Esto me sucedió incluso en las compilaciones de depuración y simplemente borró todas las carpetas de compilación de nivel de módulo y proyecto y funcionó, sí, así como así.

Panduka DeSilva
fuente
Me funcionó hace un momento.
WillC
1

Para aquellos que todavía usan VS-TACO y tienen este problema. Esto sucede debido a la inconsistencia de la versión de los archivos jar.

Aún necesita agregar correcciones al build.gradlearchivo en la platforms\androidcarpeta:

 defaultConfig {
        multiDexEnabled true 
 }

 dependencies {
      compile 'com.android.support:multidex:1.0.3'
 }

Es mejor hacerlo en el build-extras.gradlearchivo (que se vincula automáticamente al archivo build.gradle) con todos los demás cambios si los hay, y eliminar todo en la platforms/androidcarpeta, pero dejar solo el build-extras.gradlearchivo. Entonces solo compila.

Serg Tomcat
fuente
1

Ninguna de estas respuestas funcionó para mí. Estoy usando Android Studio 3.4.1.

Pude construir el proyecto, pero el estudio de Android muestra este error cuando lo iba a implementar en un dispositivo móvil. Resulta que es culpa de "ejecuciones instantáneas".

Sigue esta respuesta: https://stackoverflow.com/a/42695197/3197467

Keivan
fuente
0

Realmente no sé cómo, pero el error desapareció después de hacer todo esto:

1

Eliminar implementation 'com.google.android.gms:play-services:12.0.1'

Y añadir

implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-places:12.0.1'

2

Actualice git, jdk, cambie la ubicación de JDK en la estructura del proyecto

3

Eliminar la carpeta de compilación en mi proyecto

4 4

Limpia y reconstruye el proyecto

Kyo Huu
fuente