android - sirve - multidex in kotlin
Error: Error de ejecuciĆ³n para la tarea '': aplicaciĆ³n: transformClassesWithDexForDebug'' (27)
El error
Error: Error de ejecución para la tarea '': aplicación: transformClassesWithDexForDebug''. com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Proceso ''comando'' / usr / lib / jvm / java-8-oracle / bin / java '''' finalizó con un valor de salida distinto de cero 1
Mi archivo gradle de aplicaciones:
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''
}
Durante la depuración, si configuro minifyEnabled en verdadero, entonces se compila. Sin embargo, entonces no puedo depurar mi aplicación.
Revisé esta otra pregunta: La ejecución falló para la tarea '': aplicación: transformClassesWithDexForDebug'' mientras implementaba el inicio de sesión de Google para Android , pero solo hay una respuesta y la implementación no resuelve el problema desafortunadamente.
AFAIK, el error se debe a la adición de demasiadas dependencias de Gradle, pero puedo estar equivocado (¡realmente espero estar equivocado porque todos estos paquetes son realmente importantes!).
Por favor, ayúdame a resolver este error. ¡Muchas gracias!
- Ejecutar: plugin cordova rm cordova-plugin-compat --force
- Ejecutar: complemento cordova agregar [email protected]
- Cambio: config.xml en su carpeta de proyecto use "6.2.3" no "^ 6.2.3", luego elimine la carpeta plataformas / android, vuelva a ejecutar cordova prepare android y cordova build android
Aparentemente resolví el problema combinando todas las soluciones agregando lo siguiente al manifiesto de Android:
<application
...
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
Siguiendo al módulo de aplicación build.gradle
android {
...
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
...
defaultConfig {
multiDexEnabled true
}
}
Asegúrese de no estar utilizando dos versiones del servicio de Google.
Por ejemplo tener:
compile ''com.google.firebase:firebase-messaging:9.8.0''
y
compile ''com.google.firebase:firebase-ads:10.0.0''
Cambiando
compile ''com.google.android.gms: play-services: 8.1.0''
solo para los archivos necesarios, el problema puede resolverse. Este problema se genera debido a que se exceden los archivos en el archivo build.gradle.
Entra en Build ->
Proyecto limpio ->
Ejecutar proyecto: hecho
trabajando en Android 5.1 para mí
Entra en Build -> Clean y ejecuta tu aplicación nuevamente
Este es el problema de Multidex. Puede intentar eliminar algo de jar, o puede intentar de esta manera: http://developer.android.com/tools/building/multidex.html#mdex-gradle en la aplicación build.gradle:
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
dependencies {
compile ''com.android.support:multidex:1.0.0''
}
En tu manifiesto:
<?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>
Intente agregar
multiDexEnabled true
a su aplicación
build.gradle
file.
defaultConfig {
multiDexEnabled true
}
La solución que funcionó para mí personalmente fue:
en el
build.gradle
defaultConfig {
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
Lo solucioné! Es una colección de configuración y actualización. Agregue estas variables donde quepan en 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
}
}
¡Luego actualice a Java 8
http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/
y todo estará resuelto!
Se debe a la actualización de
buildTools
y al nuevo estudio de Android.
Nada más fallará.
Mi respuesta es un poco antigua, pero para mí la única solución fue agregar la opción multiDexEnabled en DefaultConfig de esta manera:
android{
...
defaultConfig{
...
multiDexEnabled true
}
}
Si esto no funciona, intente agregar este código:
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''
}
}
}
}
Mi error estaba relacionado con un problema con diferentes versiones de bibliotecas y esto hizo el truco.
Espero que esto pueda ayudar a alguien :)
Mueva la declaración de complemento de aplicación en la parte inferior del archivo:
aplique el complemento: ''com.google.gms.google-services''
No hay necesidad de multitex. Para el proyecto "antiguo" abierto en Android Studio 2.1, estaba cambiando la versión del complemento Gradle de 1.5.0 a 2.1.0 que me solucionó el problema.
buildscript {
dependencies {
classpath ''com.android.tools.build:gradle:2.1.0''
}
}
No te vuelvas loco, solo limpio, luego reconstruyo el proyecto y el error desapareció
Para mí, cerrar todos los demás Android Studio resolvió el problema.
Había abierto 3 estudios de Android cuando recibí el error, después de cerrar 2 no recibí ningún error.
¡No es necesario agregar ningún código relacionado con multiDex!
Para todos los que han enfrentado este problema / lo enfrentarán en el futuro:
Haga clic en el menú Generar -> Seleccionar variante de compilación -> restaurar a ''depurar''
Comentario en el módulo depurable: aplicación / * debug {debuggable true} * /
Vaya al menú Generar -> generar apk firmado -> .... -> compilarlo
Recibí este problema cuando actualicé el complemento Gradle de la versión 1.2.3 a la 1.5.0 como sugiere Android Studio. En su página web , 1.5.0 parece ser una versión beta.
Honestamente, no sé qué ventajas tiene la versión 1.5.0, pero prefiero esperar hasta que haya una versión estable.
Por supuesto, volver a 1.2.3 resolvió el problema.
Si se usa java 8 o superior, entonces el problema es que las bibliotecas que usamos son incompatibles con java 8. Entonces, para resolver esto, agregue estas dos líneas a build.gradle de su aplicación y todos los submódulos, si los hay. (Android Studio muestra claramente cómo hacer esto en un mensaje de error)
targetCompatibility = ''1.7'' sourceCompatibility = ''1.7''
Simplemente corrija las dependencias de los servicios de Google Play:
Usted incluye todos los servicios de juego en su proyecto. Solo agrega los que quieras.
Por ejemplo, si está usando solo mapas y g + signin, entonces cambie
compile ''com.google.android.gms:play-services:8.1.0''
a
compile ''com.google.android.gms:play-services-maps:8.1.0''
compile ''com.google.android.gms:play-services-plus:8.1.0''
Del documento:
En las versiones de los servicios de Google Play anteriores a la 6.5, tenía que compilar todo el paquete de API en su aplicación. En algunos casos, al hacerlo, fue más difícil mantener la cantidad de métodos en su aplicación (incluidas las API de marco, los métodos de biblioteca y su propio código) por debajo del límite de 65,536.
A partir de la versión 6.5, puede compilar selectivamente las API del servicio Google Play en su aplicación. Por ejemplo, para incluir solo las API de Google Fit y Android Wear, reemplace la siguiente línea en su archivo build.gradle:
compile ''com.google.android.gms: play-services: 8.3.0''
con estas líneas:compile ''com.google.android.gms: play-services-fitness: 8.3.0''
compile ''com.google.android.gms: play-services-wearable: 8.3.0''
Tratar
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
No se el motivo.
Algo sobre las
preDexLibraries
:
https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips
De acuerdo con @ lgdroid57:
El siguiente recurso debería ayudar a explicar lo que hace este código: enlace ( http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html ) Propiedad | Descripción javaMaxHeapSize | Establece el valor -JXmx * al llamar a dx. El formato debe seguir el patrón 1024M. preDexLibraries | Si pre-dex bibliotecas. Esto puede mejorar las compilaciones incrementales, pero las compilaciones limpias pueden ser más lentas.
Tuve este error al ejecutar un proyecto Ionic en un dispositivo Android y lo resolví eliminando y agregando la plataforma Android:
ionic cordova platform remove android
ionic cordova platform add android
Tuve este problema cuando delegué mi tarea de compilación en Google Compute Engine a través de SSH. La naturaleza de este problema es un error de memoria, como lo indica el registro de bloqueo; específicamente se produce cuando Java se queda sin memoria virtual para trabajar durante la compilación.
Importante:
cuando Gradle se bloquea debido a este error de memoria, los demonios de Gradle siguen funcionando mucho después de que su tarea de compilación haya fallado.
Cualquier nuevo intento de construir usando gradle nuevamente asignará un nuevo demonio gradle.
Debe
asegurarse de deshacerse de las instancias
gradlew --stop
utilizando
gradlew --stop
.
Los
hs_error_pid
bloqueo de
hs_error_pid
indican las siguientes soluciones:
# 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=
Descubrí que después de aumentar los recursos de tiempo de ejecución de la máquina virtual , este problema se resolvió.
Tuve un error similar Lo arreglé simplemente cambiando el directorio. Clonando mi proyecto nuevamente desde mi repositorio git, importándolo a Android Studio y construyéndolo. Parece que uno de los directorios / archivos generados por Android Studio al construir su proyecto puede haberse dañado. Eliminar todos los archivos generados por Android Studio en su proyecto o hacer lo que hice podría resolver el problema. Espero que esto ayude.
Usando iónico, pude corregir este error usando el comando: "cordova clean"
agregue
multiDexEnabled true
en
default config file
de
default config file
de
build.gradle
como este
defaultConfig {
multiDexEnabled true
}
simplemente elimine ambas carpetas de
build
en
/android
y
/android/app
y construir de nuevo con
react-native run-android
Posible ayuda
Intenté como último recurso absoluto después de agotar todas las demás opciones
Quité todas las tarjetas de memoria (RAM) pero una. Tengo menos memoria ahora pero está funcionando de nuevo. No puedo pretender saber por qué el proceso de compilación siempre encontró memoria dañada, o si esa es la causa principal al 100%; en otros aspectos, el sistema funcionó bien. Quizás esto sea algo para probar, la mejor de las suertes.