java - editar - No se puede ejecutar dex: MĂșltiples archivos dex definen
editar archivos smali (30)
Bueno para mí, eliminé el archivo en la carpeta libs llamado android support v4.jar y todo funcionó. Buena suerte :)
Sé que esta pregunta se ha hecho aquí algunas veces. Pero aún no he visto ninguna solución posible. Antes de hacer el proyecto ''Ejecutar como aplicación de Android'', si no lo limpio, recibo el siguiente error y tengo que reiniciar Eclipse ... y limpiar de nuevo.
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define
Lcom/jstun/core/attribute/MessageAttributeInterface;
com.jstun.core ... es parte de mi carpeta src, por supuesto no puedo eliminarlo. E incluso si elimino ese paquete, otro paquete aparecerá como un error como:
Unable to execute dex: Multiple dex files define
Landroid/support/v4/app/ActivityCompatHoneycomb;
He visto este error desde que actualicé a ADT 15, estoy usando Eclipse Galileo en Ubuntu ¿Tiene alguna idea? Gracias por cualquier respuesta!
Como otros mencionaron, esto ocurre cuando tienes varias copias de la misma clase en tu ruta de compilación o en otro lugar de tu configuración.
Había agregado android-support-v4.jar a mi carpeta libs /, y de alguna manera eclipse agregó una segunda copia a bin / classes / android-support-v4.jar.
Puedes probar esto con
grep -r YourOffendingClassName YourApp | jar grep
La eliminación de la copia adicional en bin / classes resolvió el problema - no estoy seguro de por qué Eclipse hizo una copia allí.
Dejo esta respuesta para alguien que se mete en este escenario como lo hice yo.
Tropecé aquí y allá antes de darme cuenta de que, por error, arrastré y solté el archivo JAR de Support Library en mi carpeta src y estaba allí. Como no tenía idea de cómo sucedió o cuándo lo dejé allí, nunca podría imaginar que algo estuviera mal allí.
Estaba recibiendo el mismo error, encontré el problema después de algún tiempo y lo eliminé. El proyecto ahora está funcionando bien.
Eliminé las dependencias de Android de la ruta de compilación y funcionó.
En caso de que alguien más se golpee la cabeza en este tema, como acabo de hacer:
Mi caso involucraba una cadena de proyectos de biblioteca. Simplemente haciendo un proyecto limpio en todas las bibliotecas arreglado todo
Encontré a continuación la solución en eclipse ... espero que funcione para ti :)
Right click on the Project Name
Select Java Build Path, go to the tab Order and Export
Unchecked your .jar library''s
Este error me sucedió cuando en el proyecto de mi aplicación hice referencia a un proyecto de biblioteca en mi espacio de trabajo de Eclipse (en mi caso, el SDK de Facebook) y al mismo tiempo incluí el SDK de Facebook como un contenedor en la carpeta libs. La eliminación de la referencia de la biblioteca pero manteniendo el jar en la carpeta libs eliminó el error.
Este problema se produce cuando se agrega una misma biblioteca a su proyecto varias veces. Si no ha agregado la biblioteca varias veces intencionalmente, revise las bibliotecas privadas / de dependencia de las bibliotecas que ha agregado en su proyecto, lo más probable es que ya hayan incluido una biblioteca que está causando este conflicto.
He tenido este problema y eso no significa que la misma biblioteca esté cargada muchas veces, pero System está intentando cargar una clase con el mismo nombre y posiblemente el mismo nombre de paquete simultáneamente, es decir,
-
com.pack1.de
yClass Geometry
deClass Geometry
delibrary1.jar
y otro
-
com.pack1.de
yClass Geometry
deClass Geometry
delibrary2.jar.
¿Cómo debe acercarse? Debe analizar qué métodos se están utilizando, un método de library1.jar o library2.
Hay 2 soluciones,
- Cambie el nombre de un nombre de paquete y luego dalvik interpreta, que son clases distintas
- O si quiere arriesgarse, purgue la clase, que no contiene el método, que realmente usamos.
Espero que haya aclarado esta pregunta frecuente.
Hoy he encontrado un error similar y la razón fue que dos proyectos de biblioteca utilizados por mi proyecto de aplicación hacían referencia a la biblioteca de soporte pero con versiones diferentes.
Más detalles: mi aplicación depende de 2 proyectos de biblioteca
- FaceBookSDK 3.0 -> que hace referencia a android-support-v4
- ActionBarSherlock -> que hace referencia a android-support-v4 pero con una versión modificada para admitir mapas.
Para resolver el problema, tuve que hacer que la biblioteca FaceBookSDK dependiera de la biblioteca ABS en lugar de la biblioteca de soporte directamente.
Incluso después de pasar por múltiples respuestas, ninguna solución funcionó para mí.
Eliminé "Dependencias de Android" de la ruta de compilación. Se agregaron todos los archivos jar nuevamente a la ruta de compilación y el error desapareció. De alguna manera, el eclipse parecía esconder las cosas.
La solución para mí fue solo hacer lo siguiente:
- -> directorio lib en su proyecto y elimine cualquier elemento múltiple.
- Project-> Properties-> Java build ¡Arrastre y elimine cualquier biblioteca de dependencia que haya agregado automáticamente y no usted! -> Aplicar
- Reiniciar Eclipse IDE
- Ahora limpia el proyecto.
- Ejecutar / Depurar en Dispositivo / Emulador del proyecto ... Buena suerte
Mi problema al principio fue:
No se puede ejecutar dex: java.nio.BufferOverflowException. Compruebe el registro de Eclipse para el seguimiento de la pila.
1) I Hacer clic con el botón derecho en mi proyecto -> Herramientas de Android -> Agregar biblioteca de soporte (Ejecutar mi aplicación ... No funcionó, así que lo mantengo en funcionamiento ...) 2) Haga clic derecho en mi proyecto nuevamente -> Propiedades -> Android -> Comprobar Android 4.1.2 (16) en Project Build Target (Ejecutar la aplicación de nuevo ... y obtener esto:
No se puede ejecutar dex: varios archivos dex definen Landroid / support / v4 / app / BackStackState;
3) Así que fui a la carpeta "lib" en mi proyecto y eliminé el "antiguo" Android.support.library.jar (Ejecuta la aplicación y cruzo los dedos y ...)
¡FUNCIONA!
Espero que ayude a alguien ... Gracias personas!
Modifique el parámetro de memoria máxima en eclipse.ini
-Xmx1024m
Y reinicia tu computadora.
Funcionó para mí :)
Para agregar la miríada de otras fuentes potenciales ... Había actualizado todas las bibliotecas en la carpeta lib
mi proyecto pero luego Eclipse reinstaló "amablemente" todas las bibliotecas originales. Ya no había ninguna referencia dentro de Eclipse a estas bibliotecas, pero el programa externo de dex-maker simplemente tomó todos los archivos en el directorio lib
y obtuvo dos versiones de varios archivos .jar
biblioteca.
git status
identificó los nuevos archivos y git clean -f
se deshizo de ellos para mí (aunque a veces tuve que esperar o reiniciar Eclipse en Windows porque todavía tenía los archivos abiertos desde la copia).
Para mí eliminé android-support-v4.jar de la carpeta lib y también lo eliminé de la ruta de compilación.
Para mí, el problema era que había agregado un proyecto lib (autobahn lib) antes y luego lo cambié al archivo Jar de la misma biblioteca. Aunque había eliminado referencias al proyecto anterior de la biblioteca, estaba obteniendo este error. Siguiendo todas las respuestas aquí, verifiqué la ruta de compilación, etc. Pero no he agregado estas librerías para compilar la ruta manualmente. Entonces no tenía nada que eliminar. Finalmente encontré esta carpeta.
bin / dexedLibs
Noté que había dos archivos jar con el mismo nombre correspondiente a la autopista Android que estaba causando el conflicto. Así que eliminé todos los archivos jar en la carpeta dexedLibs y reconstruí el proyecto. Eso resolvió el problema.
Para mí, solo dirígete a Propiedades del proyecto >> Ruta de compilación de Java >> Ordenar y exportar. Desmarque toda la biblioteca externa, como la imagen de abajo. Funciona para mí Espero que esto ayude.
Recibí este error por otra razón. Estaba confundiendo la adición de la biblioteca de soporte v4 AND v13. Esto no fue necesario para mí ya que mi minSdkVersion es 15.
Lo arreglé solo al incluir la biblioteca de soporte v13. Además, asegúrese de marcar la biblioteca en la ruta de compilación de la biblioteca exportada en eclipse. También lo moví a la cima.
Si alguno de ustedes enfrenta este problema con facebook-connent-plugin para phonegap
¡intente eliminar archivos en el directorio bin / class / com / facebook / android! -> y reconstruir
Solución ULTRA simple y más fina:
Elimine todo en la carpeta de Right Click del proyecto principal -> Properties -> Java Build Path, excepto Android XY (donde XY es la versión en android). Limpiar y construir ¡Hecho!
Antes de eso, asegúrate de tener un único android-support-v4.jar.
También estaba luchando para encontrar que este es un problema. En mi caso, lo que sucedió es al copiar el apk al correo electrónico (arrastrar y soltar); por error, el apk se pegó en la carpeta src en uno de los paquetes. Después de eliminar el apk de la carpeta fuente funcionó bien.
También me he enfrentado a este problema en mi proyecto. AVD no puede volver a cargar los contextos de carpetas assets, lib, res y etc. problema: Dex Loader] No se puede ejecutar dex: Múltiples archivos dex definen Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl
.
Luego, creé nuevos proyectos y copié MainActivity.java
, activity_main.xml
, contexto MainActivity.java
. A continuación, elimine el proyecto anterior del paquete explore, reinicie su Eclipse y AVD. Mi proyecto ahora está funcionando correctamente ... :) ¡Espero que estos pasos te ayuden un poco a la gente ...!
Tengo el mismo problema, lo que probé es:
- Artículo de lista
- Abrir ruta de compilación del proyecto
- Seleccione la pestaña "Bibliotecas",
- Eliminar toda la biblioteca, excepto la biblioteca de Android
- Agregar todos los archivos necesarios de JAR,
- ¡Y hecho!
Funciona para mí, gracias.
Tuve el mismo error y cada vez que lo arreglé, volvería después de reiniciar Eclipse.
En primer lugar, como dijeron otras personas, asegúrese de no tener varias copias del mismo archivo .jar en sus proyectos.
En mi caso, tenía un proyecto principal que usaba ActionBarSherlock (entre otros proyectos de biblioteca). El truco que funcionó para mí fue ir a ActionBarSherlock --> Properties --> Java Build path --> Order of Export
y anular la selección de Android Private Libraries
. Luego vaya a Project -> Clean
y ahora debería poder construir el proyecto correctamente.
Ahora, por alguna razón, cada vez que reinicio Eclipse, automáticamente habilita esa casilla de verificación, así que tengo que repetir este proceso nuevamente.
Espero que esto ayude a un alma perdida por ahí :)
Tuve el mismo problema Tuve que eliminar el archivo .apk
y luego funcionó.
Tuve este problema en Intellij y fue porque la biblioteca ActionBarSherlock que agregué a mi proyecto definió el android-support-v4.jar como una dependencia de compilación y este jar ya estaba incluido en mi proyecto, por lo que había varias copias / versiones de DEX en tiempo de compilación.
La solución fue cambiar la dependencia del módulo ActionBarSherlock para que este jar sea Runtime en lugar de compilar, ya que mi proyecto ya lo estaba proporcionando.
Vaya a Proyecto / propiedades y Java Built Path y desmarque las bibliotecas privadas de Android
Este es un problema de compilación.
Asegúrate de que tu carpeta bin no esté incluida en tu ruta de compilación.
Haga clic derecho en su proyecto -> vaya a propiedades -> Ruta de compilación.
Asegúrese de que la biblioteca Honeycomb esté en su carpeta
libs/
y no en su carpeta de origen.Incluya las bibliotecas en
libs/
individualmente en la ruta de compilación.Por cierto, es posible que desee traer la biblioteca
android-support-v4
para obtener el soporte de Ice Cream Sandwich en lugar de la biblioteca de soporte de Honeycomb.
- Haga clic derecho en el proyecto y vaya a
build Path>configuration build path
- Seleccione la pestaña de la biblioteca y haga clic en la
support-v4 library
y haga clic en quitar - Haga clic en Aceptar
y luego limpiar su proyecto y ejecutarlo funcionará :-)