EXCEPCIÓN INESPERADA DE SUPERIOR NIVEL: java.lang.IllegalArgumentException: ya agregado
Soy nuevo en Android, tratando de lanzar el proyecto, que se está construyendo y desplegando bien. Pero cada vez que intento iniciar la aplicación desde eclipse, obtengo este error:
UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lcom/.../model/AvailabilityRequest$DAY_TIME_PREFERENCE; [2012-02-06 17:32:11 - main-app] Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) [2012-02-06 17:32:11 - main-app] Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:163) [2012-02-06 17:32:11 - main-app] Dx at com.android.dx.command.dexer.Main.processClass(Main.java:486) ... [2012-02-06 17:32:11 - main-app] Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) [2012-02-06 17:32:11 - main-app] Dx 1 error; aborting [2012-02-06 17:32:11 - main-app] Conversion to Dalvik format failed with error 1
He matado una cantidad enorme de tiempo para esta cosa estúpida. Obviamente, esto es un problema conocido, pero nada funciona para mí.
Lo que tengo:
- El emulador de Android Mac OSX se cuelga en la pantalla mostrando 'ANDROID_'
- La compilación valgrind de Android falla
- Compilación cruzada de GCC con newlib para ARM: cómo especificar opciones de GCC como -march?
- Problemas al iniciar un AVD (Android Virtual Device) en Android Studio (en Mac)
- Visualización de datos SQLite en una tableta Android - Navegador de base de datos SQLite
Sistema operativo – OS X , que es importante creo;
IDE – eclipse 3.7.1
ADT – Versión: 15.0.1.v201111031820-219398
Herramienta de construcción – Maven
Lo que he probado hasta ahora:
– Propiedades-> Java Build Path-> Bibliotecas para eliminar todas las librerías excepto Android xyz, luego Maven-> Actualizar Project Configuration, también para limpiar el proyecto;
– Magia con eclipse de cierre y reapertura;
– Danzas con borrar y recrear el proyecto y las bibliotecas para ello (según el texto del mensaje de error, hay una duplicación de las fuentes, que están en una de las 2 bibliotecas, utilizadas en el proyecto principal).
Después de una de las variantes anteriores (normalmente la primera) empieza a funcionar, pero puedo pasar 20 minutos para hacer que funcione o varias horas …, hoy no puedo hacerlo.
Cualquier idea sería apreciada.
- Problema de instalación de Android: ignorando el filtro de paquete desconocido 'platform-tools'
- Mac OSX Herramientas para desarrolladores de Android Null Pointer Exception
- Emulador de Android laggy en Mac
- Android Studio IDE con jre privado / jdk? OSX
- Cocos2d-x android no puede resolver la biblioteca coscos2dx
- Android - Conexión a un dispositivo con adb over wifi
- Ejecutar Robolectric en IDEA detrás del proxy
- Dispositivo LG no listado en dispositivos ADB
El ADT lanzará una excepción como ésta si su ruta de clases de Eclipse contiene más de una clase del mismo nombre / paquete. En este caso está encontrando más de una instancia de la clase AvailabilityRequest
en sus dependencias de Maven.
Puede resolver esto encontrando qué dependencias de classpath contienen los mismos archivos de clase (pulsando Ctrl-Alt-T y tecleando AvailabilityRequest).
A continuación, puede abrir su POM en el editor POM m2e y vaya a la pestaña Jerarquía de dependencias. Esto le permitirá seleccionar la dependencia ajena, que puede excluir haciendo clic con el botón derecho del ratón y seleccionando "Excluir Maven Artefacto …" que agregará automáticamente un elemento <exclusions>
a su POM. Esto eliminará el JAR duplicado de su ruta de clases de Eclipse y le permitirá construir su proyecto.
Además, debe tener cuidado con las dependencias que agrega a su POM.
Bueno, por lo que entiendo, lo principal aquí es que estaba usando maven como una herramienta de construcción. Podría construir y desplegar proyecto sin ningún problema, pero no podía iniciarlo desde el entorno (eclipse).
Si no me equivoco, cuando vaya a Run-> Run Configurations de eclipse y cree una aplicación Android para lanzar su proyecto, básicamente le pedirá a eclipse (SDK de Android) que construya el .apk con Ant para usted, no con maven. Eclipse construye el proyecto con Ant y empuja el .apk generado al dispositivo / simulador. Pero como todas las configuraciones del proyecto están en archivos .pom , Ant no puede construir el proyecto y da los errores de este tipo.
Solución:
Inicie la aplicación directamente desde el dispositivo / simulador después de desplegarlo, no a través del menú Ejecutar . Si desea depurar su aplicación, utilice la depuración de DDMS, no la que proporciona un eclipse. En caso de que no sepas dónde está DDMS (como yo en mi caso) – en Mac es Ventana-> Abrir Perspectiva-> Otro … elige DDMS en el menú; Puede ponerlo como un marcador junto con Debug de eclipse y Java . En DDMS encontrarás todas las herramientas interesantes, incluyendo depurar.
PS Esta es una respuesta de un principiante y para principiantes … Si ves algo donde estoy equivocado, por favor, hágamelo saber o siéntase libre de editar mi respuesta.
- Pase el evento de desplazamiento a otra vista
- Cómo iniciar la actividad de Android desde eclipse con Intención personalizada