2010-07-22 2 views
41

Je suis nouveau sur Android et j'utilise la bibliothèque Ical4j pour l'analyse des fichiers ICS (calendrier Outlook).Qu'est-ce que la sortie d'avertissement "Ignoring InnerClasses" lors de la compilation?

Cependant, quand je construis ma demande dans Eclipse, l'avertissement suivant apparaît plusieurs fois dans la console:

[2010-07-22 15:58:31 - Google Agenda] Télécharger avertissement: Ignorer InnerClasses Attribut pour une classe interne anonyme qui ne possède pas d'attribut EnclosingMethod associé. (Cette classe a probablement été produite par un compilateur cassé.)

Quelles implications cela a-t-il? Comment puis-je résoudre ça?

Répondre

29

Ceci est assez courant lors de l'inclusion de fichiers jar. Bien que l'avertissement ne vous inquiète pas si vous utilisez l'API normalement, vous devriez pouvoir vous en débarrasser en compilant ical4j vous-même depuis la source dans Eclipse (soit créez un nouveau fichier, soit déposez simplement la source dans votre propre dossier source). Bien que je devrais souligner que si vous avez vraiment des problèmes, ce n'est pas quelque chose à s'inquiéter.

+0

Plus de détails Plis, je ne comprends pas ce qu'il faut faire =/ – cheloncio

+0

@zhelon, à moins qu'il est à l'origine vous problèmes que vous n'avez vraiment rien à faire. – Nick

+16

Y a-t-il un moyen de supprimer cet avertissement? Je reçois beaucoup spammé par cela. – Malabarba

4

J'ai eu la même erreur lors de l'utilisation de la bibliothèque ksoap2. Pour m'en débarrasser, j'ai téléchargé DJ Java Decompiler afin de décompiler le fichier .jar en fichiers .java. Après cela, j'ai compilé les fichiers .java dans un fichier .jar en utilisant eclipse.

+6

Vous pouvez simplement recompiler à partir de la source plutôt que de décompiler. C'est sur github. Aussi ce problème vient de ksoap2-android étant compilé pour Java 1.3. –

+1

Je n'ai pas trouvé les bonnes sources pour la version que j'utilisais mais merci pour votre commentaire. –

31

Si votre application et vos bibliothèques ont toutes été construites avec un nouveau JDK (7+) et que vous obtenez toujours cela, vous pouvez résoudre ce problème en demandant à Proguard de conserver l'attribut de la méthode englobante. Il suffit d'ajouter ce qui suit à vos règles de Proguard:

-keepattributes EnclosingMethod

+7

Cela ne fonctionne pas pour moi ... –

+3

Fonctionne pour moi, merci –

+0

aucun effet pour moi. ce qui m'a aidé était le nettoyage du projet puis Make Project. – Belial09

1

outils de construction de mise à jour et les bibliothèques de support à la même version

+1

Bien que cette réponse pourrait avoir plus de détails sur «pourquoi» cela aiderait ce n'est pas une mauvaise réponse ... Cela n'aide pas beaucoup à comprendre le problème – MOnsDaR

Questions connexes