编译期间“Ignoring InnerClasses属性”警告输出是什么?

时间:2010-07-22 10:50:21

标签: android compiler-warnings

我是Android的新用户,正在使用Ical4j库来解析ICS(Outlook日历)文件。

但是,当我在Eclipse中构建应用程序时,控制台中会多次出现以下警告:

  

[2010-07-22 15:58:31 - Google Calendar Upload]警告:忽略没有关联的EnclosingMethod属性的匿名内部类的InnerClasses属性。 (这个类可能是由一个破碎的编译器产生的。)

这有什么影响?我该如何解决这个问题?

4 个答案:

答案 0 :(得分:31)

如果您的应用程序和库都是使用新的JDK(7+)构建的,并且您仍然可以使用它,那么您可以通过告诉Proguard保留封闭方法属性来解决此问题。只需将以下内容添加到您的Proguard规则中:

-keepattributes EnclosingMethod

答案 1 :(得分:29)

包含jar文件时这很常见。虽然如果你只是正常使用API​​,警告并不需要担心,你应该能够通过在Eclipse中从源代码编译ical4j来摆​​脱它们(构建一个新的jar,或者只是将源代码放入你的自己的源文件夹)。虽然我应该强调,除非你真的遇到问题,否则不用担心。

答案 2 :(得分:4)

使用kso​​ap2库时遇到了同样的错误。

为了摆脱它,我下载了DJ Java Decompiler来将.jar文件反编译为.java文件。 之后,我使用eclipse将.java文件编译为.jar文件。

答案 3 :(得分:1)

将构建工具和支持库更新到同一版本