Dx警告:忽略org.apache.tools.ant的InnerClasses..

3
我遇到了一组警告,导致内存溢出并最终导致Eclipse崩溃。
这是一个包含twitter4J核心jar的Android应用程序作为引用库。这里使用的是Google APIs(com.google.android.),因此我将目标设置为Google APIs而不是常规ADK。
问题在于:
[2011-11-18 08:29:24 - Twitter] Dx警告:忽略匿名内部类的InnerClasses属性 (org.apache.tools.ant.taskdefs.Parallel$1),该属性没有关联的EnclosingMethod属性。这个类可能是由一个编译器产生的, 而该编译器不针对现代.class文件格式进行目标编译。推荐的解决方案是,使用最新的编译器从源代码重新编译类, 而不指定任何"-target"类型选项。忽略此警告的后果是,在这个类上执行反射操作会错误地表明它不是一个内部类。
这种警告会持续到大约20个内部类(大约有6个在taskdefs中),控制台中提到的所有内部类都来自org.apache.tools.ant。
我已经将Java SE 6更新为适用于Mac OS X Lion的1.6版本,并使用http://mac.softpedia.com/get/System-Utilities/Java.shtml
但问题仍然存在。我应该升级我的ant吗?我的ant版本是1.8.2。

1
当然,我已经清理并重新构建了,但仍然是同样的问题。 - Macchiato13
你解决了吗?我也遇到了同样的问题,不知道该怎么办。 - Tar
2个回答

1

这是由于部分使用的库已经使用JDK 1.4或更早版本进行编译的结果。解决方案是重新编译所有内容为Android Mock使用的新的.jar文件。


0
这是在编译项目时发生的。只需将以下内容添加到您的proguard-rules.pro文件中即可消除警告。
-keepattributes EnclosingMethod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接