2010-07-22 9 views
41

Soy nuevo en Android y estoy usando la biblioteca Ical4j para analizar archivos ICS (calendario de Outlook).¿Qué es el resultado de advertencia "Ignoring InnerClasses attribute" durante la compilación?

Sin embargo, cuando construyo mi aplicación en Eclipse, la siguiente advertencia aparece muchas veces en la consola:

[2010-07-22 15:58:31 - Google Calendar Subir] Aviso: Ignorando InnerClasses atributo para una clase interna anónima que no viene con un atributo EnclosingMethod asociado. (Esta clase probablemente fue producida por un compilador roto).

¿Qué implicaciones tiene esto? ¿Cómo puedo resolver esto?

Respuesta

29

Esto es bastante común cuando se incluyen archivos jar. Aunque la advertencia no es algo de lo que preocuparse si solo está utilizando la API normalmente, debería poder deshacerse de ellos compilando ical4j usted mismo desde la fuente dentro de Eclipse (ya sea que construya una jarra nueva o simplemente deje caer la fuente en su propia carpeta de origen). Aunque debo recalcar que a menos que realmente tengas problemas, esto no es algo de lo que preocuparte.

+0

Más detalles plis, yo no entiendo qué hacer =/ – cheloncio

+0

@zhelon, a menos que sea causa usted problemas que realmente no tiene que hacer nada. – Nick

+16

¿Hay alguna manera de suprimir esta advertencia? Me estoy haciendo un gran correo basura. – Malabarba

4

Tuve el mismo error al usar la biblioteca ksoap2.

Para deshacerse de él, descargué DJ Java Decompiler para descompilar el archivo .jar en archivos .java. Después compilé los archivos .java en un archivo .jar usando eclipse.

+6

Puede simplemente recompilar desde el origen en lugar de descompilar. Está en github. También este problema proviene de ksoap2-android compilado para Java 1.3. –

+1

No encontré las fuentes correctas para la versión que estaba usando, pero gracias por su comentario. –

31

Si su aplicación y sus bibliotecas han sido creadas con un nuevo JDK (7+) y todavía lo está logrando, puede solucionar este problema diciendo a Proguard que mantenga el atributo de método adjunto. Sólo tiene que añadir lo siguiente a sus reglas Proguard:

-keepattributes EnclosingMethod

+7

Esto no funciona para mí ... –

+3

Funciona para mí, gracias –

+0

no tiene ningún efecto para mí. lo que me ayudó fue a Limpiar el Proyecto y luego a Hacer Proyecto. – Belial09

1

herramientas de actualización de construir y bibliotecas de soporte a la misma versión

+1

Aunque esta respuesta podría tener más detalles sobre "por qué" esto ayudaría a que esta no sea una respuesta incorrecta ... Simplemente no ayuda mucho a entender el problema – MOnsDaR

Cuestiones relacionadas