android - todas - mis aplicaciones y juegos
No se puede cargar la aplicaciĆ³n de Android en el dispositivo(tarros dexedos obsoletos) (13)
Estoy usando Android Studio para desarrollar esta aplicación, y hoy, cuando traté de subirlo a mi dispositivo para probar, recibí una ventana emergente que decía:
La instalación falló, ya que el dispositivo posiblemente tenga tarros dexteados que no coincidan con la versión actual (error dexopt). Para continuar, debe desinstalar la aplicación existente.
ADVERTENCIA: ¡La desinstalación eliminará los datos de la aplicación!
¿Quieres desinstalar la aplicación existente?
Dio dos opciones, OK o Cancelar. Al presionar OK, apareció el siguiente mensaje en la pestaña Ejecutar:
DEVICE SHELL COMMAND: pm uninstall my.bundle.id
Unknown failure
La aplicación parece estar desinstalada, no hay rastro de ella en Administrar aplicaciones.
No puedo cargar la aplicación. Intenté limpiar el proyecto y reconstruirlo, pero no funcionó.
¿Que puedo hacer?
Descubrí que el archivo dex era más grande que el buffer, a pesar de que contenía menos de 64k métodos. Luego habilité ProGuard y me ayudó mucho a reducir el tamaño del archivo dex.
La aplicación dex-method-counts ayuda mucho a depurar su archivo dex, verificando no solo la cantidad de métodos, sino también a qué paquete pertenecen.
Lo que hice fue modificar el archivo build.gradle (Module: app).
Inicialmente fue
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
Lo cambié a
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
¡Entonces recompila y despliega!
Vaya a AVD Manager, luego en la sección de acción de su dispositivo seleccione borrar datos. Esto funcionó para mí, espero que ayude ...
Descubrí que mi problema fue causado por la versión anterior de SDK Build Tools, lo que causaba que el Clean fallara. Actualicé mis SDK Build Tools a la versión más nueva y después de esa limpieza funcionó, y ya no recibí el error rancio dexed jar. Esperamos que esto ayude a alguien más a lidiar con este problema.
Esto funcionó para mí:
En Android Studio, esto se puede hacer haciendo clic en Build> Clean Project . SysadminConsejos
Cuando su archivo dex se hace más grande que el tamaño del búfer (es decir, contiene más de 65k métodos), se produce este error. Puede evitar este error de dos maneras: 1.) Elimine el código no utilizado con ProGuard: configure ProGuard para que su aplicación ejecute ProGuard y asegúrese de que la reducción esté habilitada para versiones de lanzamiento. Al habilitar la reducción se garantiza que no envíe código no utilizado con sus APK.
2.) Puede configurar su aplicación para soporte multidex. Consulte este enlace para usarlo: https://developer.android.com/tools/building/multidex.html
Para soporte multidexio, anulo este método en mi clase de aplicación:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
y modificar mi build.gradle así:
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
minSdkVersion 14 //lower than 14 doesn''t support multidex
targetSdkVersion 21
// Enabling multidex support.
multiDexEnabled true
}
}
dependencies {
compile ''com.android.support:multidex:1.0.0''
}
¡Espero eso ayude!
EDICIONES: Tomó la explicación de texto del código.
En mi caso fue porque mi emulador estaba lleno de aplicaciones. Vi cuánto espacio tenía el emulador y era casi nada, así que borré algunas aplicaciones y con esto mi problema se resolvió
Inhabilité la ejecución instantánea para este proyecto y el problema fue resuelto.
Tal vez sea un error en la función de ejecución instantánea de la vista previa de Android studio 2.0.
Instant Run es una nueva característica introducida en Android Studio 2.0.
ps: en caso de que no encuentre la ejecución instantánea, está en:
Android Studio --> Preferences --> Build, execution, deploy --> Instant run.
o puede buscarlo en la pestaña de preferencias.
También he encontrado este problema en Android Studio, desde la versión 2.0 Preview 6 hasta 2.0 Beta 3 y ninguna de las soluciones mencionadas aquí funcionó para mí.
Resultó que no tenía nada que ver con Instant Run. Todo lo que tenía que hacer era aumentar el almacenamiento interno del AVD hasta que desapareciera la siguiente notificación. También tuve que realizar una limpieza de datos después de cambiar los valores.
En mi proyecto, superé esto al ser más específico con respecto a las partes de los Servicios de Google Play con las que estaba enlazando. En particular, cambié
dependencies {
...
compile ''com.google.android.gms:play-services:8.4.0''
}
a
dependencies {
...
compile ''com.google.android.gms:play-services-maps:8.4.0''
}
en build.gradle de mi módulo de aplicación, ya que todo lo que realmente estaba usando era la API de mapas.
Ninguna respuesta no resolvió mi problema
también debería hacer progaurd
para depuración también. simplemente agregue buildtypes
de buildtypes
a su archivo gradle principal:
buildTypes {
debug { // change release to debug
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}
Si usa la vista previa de Android studio 2.0, desactive la ejecución instantánea.
Todo el crédito y gracias por el salvavidas https://.com/a/34192979/1413998
En mi caso, fue causado por un archivo llamado "dictionary.txt". Lo eliminé y resolví el problema.