java - machine - Varios archivos dex-Falló la conversión al formato Dalvik-No se pudo ejecutar dex
dalvik vs art (5)
Tengo 2 versiones de la aplicación - pro y lite. Ambos están ya en el mercado en v1.01. Estoy tratando de liberar v1.1 para ambos. Esta actualización incluye la integración de SwawrmConnect para usar sus tablas de clasificación globales.
Debería comenzar diciendo que sé que no estoy manteniendo mi código correctamente. Tengo 2 aplicaciones completamente separadas y que comparten probablemente el 90% de su código. Los mantengo por separado porque después de una semana o 2 o 3 de no haber podido averiguar cómo hacer una biblioteca y compartir un código, me rendí y seguí así.
SwarmConnect es el primer frasco que he usado y tuve que crear una biblioteca para dos aplicaciones (vea la captura de pantalla de la estructura de archivos a continuación).
En este momento mi versión Lite está funcionando y está lista para el lanzamiento. Ahora estoy tratando de llevar mi versión pro a donde debe estar para el lanzamiento. Estoy bastante seguro de que todos los archivos java / xml están actualizados y listos. Cuando fui a ejecutar la versión Pro en el emulador, obtengo el siguiente error:
[2013-04-18 11:24:41 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;
[2013-04-18 11:24:41 - BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler;
Cosas que he probado:
- Limpiar / reconstruir
- Actualizar Eclipse
- Eliminar carpetas bin y gen
- Reiniciar Eclipse
- Mas algunas otras cosas
Mi estructura de archivos:
¿Podría ser el problema si estoy tratando de usar SwarmConnect como una biblioteca para 2 proyectos (lite y pro)?
EDITAR:
A continuación se muestra la estructura de archivos para la versión lite que funciona perfectamente. Compila y ejecuta en el emulador.
Casualmente me encontré con el mismo problema, justo antes de ayer. Esto es lo que te sugiero que hagas.
En primer lugar, asegúrese de tener una copia de seguridad de todos los frascos que residen actualmente en la carpeta ''Dependencias de Android'' / ''libs''.
Ahora, reparemos primero la versión Lite siguiendo estos pasos.
Elimine todos los archivos
jar
exceptoandroid-support-v4.jar
de la carpeta ''Dependencias de Android'' en el Explorador de proyectos en Eclipse.De manera similar, elimine todos los archivos Jar, excepto
android-support-v4.jar
de la carpetalibs
en el Explorador de proyectos en Eclipse.Ahora, haga clic con el botón derecho en su proyecto-> Seleccionar propiedades-> Seleccionar ruta de compilación Java-> Seleccionar Agregar JAR externos. Agregue todos los archivos
jar
necesarios (solo asegúrese de agregar un archivojar
particular solo una vez).
Finalmente limpiar el proyecto y construirlo. Ahora aplique la misma secuencia de pasos a la versión pro. Deberias hacer eso.
ACTUALIZACIÓN: - En caso de que vea Eclipse cribbing sobre algunos errores de tiempo de compilación después de hacer todo esto, todo lo que podría hacer es corregir esos errores de tiempo de compilación haciendo las importaciones necesarias presionando Ctrl + Shift + O.
[Supongo que no hay un vínculo entre las versiones Pro y Lite del proyecto en términos de dependencias de origen, etc., lo que quiero decir es que son totalmente independientes.]
Espero que esto ayude.
Intenté la respuesta de @Sriram arriba. No funciono
Luego tuve que eliminar las bibliotecas de la ubicación Proyecto-> Propiedades-> Java Build Path-> Libraries y agregar el tarro real (necesitaba tanto android-support-v4.jar como android-support-v13.jar) en la carpeta libs de mi proyecto. Entonces funcionó:
(tenga en cuenta que no hay una carpeta de "Bibliotecas de referencia")
La solución anterior no funcionó para mí. Todo lo que tuve que hacer fue agregar los frascos en la carpeta libs externamente y Desmarcar las bibliotecas privadas de Android en la pestaña de pedido y exportación.
right click--
java build path--
order and export tab ->Uncheck Android private libraries
and add jars in the libs folder externally.
hacer los pasos anteriores. No sé por qué está sucediendo esto.
Recibí este error porque usé todo el instalador del Kit de desarrollo de Android (Eclipse plus SDK, con fecha del 6/6/2013). La única forma de deshacerme de él era desinstalar todo eso, e instalar Eclipse For Java Developers por separado de eclipse.org, y el SDK de Android solo desde el sitio de Android. El Eclipse que viene con el kit tiene algunas ideas divertidas acerca de dónde incluir las bibliotecas, por no mencionar las piezas de vestigio de soporte de c ++ y gdb.
Sospecho fuertemente que este es tu problema
- Haz click derecho en tu proyecto
- Mira debajo de la opción "Android"
- En el panel inferior, observe si "Swarm Connect" está presente.
- Si no, agrégalo (aunque realmente sospecho que ya está ahí)
- Elimina Swarm.jar de tu directorio libs
La razón es que: cuando agrega un proyecto de biblioteca a un proyecto de Android en Eclipse, no aparece en el directorio libs. De hecho, intenté agregar solo el archivo .jar a un proyecto y me dijeron que ese era el enfoque incorrecto (al menos hasta la API 14, creo).
Mi conjetura es que, en su versión "no profesional", no lo vinculó en las opciones del proyecto y, por lo tanto, aún se compila correctamente. Sin embargo, debe vincularlo de la forma que acabo de describir para evitar problemas cuando la biblioteca intenta acceder a sus propios recursos.