No se puede subir la aplicación de Android al dispositivo (frascos de dexed rancio)
Estoy utilizando Android Studio para desarrollar esta aplicación, y hoy, cuando traté de subirlo a mi dispositivo para probar Tengo una ventana emergente diciendo:
Se ha producido un error en la instalación, ya que el dispositivo posiblemente tiene tarros duros dexados que no coinciden con la versión actual (error dexopt). Para proceder, tienes que desinstalar la aplicación existente.
- ¿Cómo obtener un punto de ruptura en código NDK nativo y depurar código nativo en Android Studio?
- Invocación de método 'fab.setOnClickListener (new View.OnClickListener () {@Override public void on ...' puede producir 'java.lang.NullPointerException'
- Android studio "Tu aplicación no tiene los últimos cambios de código .."
- Error de NDKBuild
- Handler es abstracto, no se puede instanciar
ADVERTENCIA: ¡La desinstalación eliminará los datos de la aplicación!
¿Desea desinstalar la aplicación existente?
Dio dos opciones, OK o Cancelar. Al pulsar Aceptar, aparece 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 ello en Administrar aplicaciones.
No puedo subir la aplicación. Traté de limpiar el proyecto y reconstruir, pero no funcionó.
¿Que puedo hacer?
- La compilación de Android Studio / Gradle no puede encontrar la clase de aplicación personalizada
- Problemas de procesamiento @ id / visible Android Studio
- Error: Error de ejecución para la tarea ': app: processDebugGoogleServices
- Error: (1, 0) No se encontró el complemento con id 'com.android.application'
- Android studio: depurar la aplicación en el dispositivo
- Android Studio siempre excluye la carpeta de compilación / fuente
- Gradle dependencias que se resuelven de repente muy lento
- Dependency org.apache.httpcomponents: httpclient: 4.4.1 se ignora para la liberación, ya que puede estar en conflicto con la versión interna proporcionada por Android
Inhabilité la ejecución instantánea para este proyecto y el problema 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 encuentres Instant run, está en:
Android Studio --> Preferences --> Build, execution, deploy --> Instant run.
O puede buscarlo en la pestaña de preferencias.
Vaya a AVD Manager, luego en la sección de acción de su dispositivo, seleccione wipe data. Esto funcionó para mí, espero que ayude ….
Descubrí que el archivo dex era más grande que el búfer, aunque contenía menos de 64k métodos. Luego habilité ProGuard y ayudó mucho a reducir el tamaño del archivo dex.
La aplicación dex-method-counts ayuda mucho a depurar su archivo dex, comprobando no sólo el número de métodos, sino el paquete al que pertenecen
Descubrí que mi problema era causado por la versión antigua de las herramientas de compilación del SDK, que estaba causando la falla de Clean. He actualizado mis herramientas de construcción de SDK a la versión más reciente y después de que la limpieza funcionó, y ya no recibió el error de tarro dexed rancia. Esperemos que esto ayude a alguien más luchando con este problema.
Esto funcionó para mí:
En Android Studio esto se puede hacer haciendo clic en Build> Clean Project . SysadminTips
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í.
Apareció que no tenía nada que ver con Instant Ejecutar. 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 un borrado de datos después de cambiar los valores.
En mi proyecto superé esto al ser más específico acerca de qué partes de Google Play Services estaba vinculando. En particular, he cambiado
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.
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' } }
A continuación, reconstruir y desplegar!
Cuando su archivo dex se vuelve más grande que el tamaño del búfer (es decir, contiene más de 65k métodos), entonces este error se produce. Puede evitar este error de dos maneras: 1.) Quite el código no utilizado con ProGuard: configure la configuración de ProGuard para que su aplicación ejecute ProGuard y asegúrese de que ha activado la reducción de compilaciones de liberación. Habilitar encogimiento garantiza que no está enviando 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 el soporte multidex, anule 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 como este:
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!
EDITOS: 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 casi no había nada así que eliminé algunas aplicaciones y con esto mi problema se resolvió
Si está utilizando la vista previa de Android studio 2.0, desactive la ejecución instantánea.
Todo el crédito y las gracias van para el protector de vida https://stackoverflow.com/a/34192979/1413998
Ninguna de las respuestas no resolvió mi problema
También debe hacer progaurd
para depurar también. Sólo tiene que agregar buildtypes
a su archivo gradle principal:
buildTypes { debug { // change release to debug minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } }
En mi caso fue causado por un archivo llamado "dictionary.txt". Acabo de eliminarlo y resolvió el problema.