如何使用Gradle压制“警告:忽略匿名内部类的InnerClasses属性”?

如何使用Gradle压制“警告:忽略匿名内部类的InnerClasses属性”?

  • 这不是一个重复的问题
  • 这不是在Proguard期间,也不想使用Proguard压制
  • 我想压制做正常./gradlew assembleDebug (因为这是assertj-core./gradlew testDebug

相关性:

 dependencies { testCompile "org.assertj:assertj-core:1.7.1" } 

警告:

 Dex: warning: Ignoring InnerClasses attribute for an anonymous inner class (org.assertj.core.internal.cglib.reflect.FastClassEmitter$3) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly indicate that it is *not* an inner class. 

就像是:

 tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 configure(options) { compilerArgs << "-Xlint:-options" // Turn off "missing" bootclasspath warning } } 

我可以添加什么compilerArgs args来抑制这个警告?

参考文献:

  • 我在这里有一个答案,但没有任何这些压制这个警告: 如何在使用gradle编译android库时禁止警告?

Solutions Collecting From Web of "如何使用Gradle压制“警告:忽略匿名内部类的InnerClasses属性”?"

前一段时间我尝试使用第三方库时遇到了同样的问题。 这个lib是为Java 1.3编译的。 我能够通过获取该库的源代码并自行构build一个jar文件来修复它。 当然,如果这个库的源文件已经可用并且可以编译,那么这只能工作。

@SuppressWarnings("unchecked")取代unchecked没有帮助? 更多的例子在这里: http : //www.codejava.net/java-core/the-java-language/suppresswarnings-annotation-examples