如何添加-Xlint:取消选中我的基于Android Gradle的项目?

时间:2013-09-08 22:41:51

标签: android gradle javac lint

我尝试将以下内容添加到根build.gradle文件中:

subprojects {
    gradle.projectsEvaluated {
        tasks.withType(Compile) {
            options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
        }
    }
}

但我得到了这个:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation

我做错了什么?

7 个答案:

答案 0 :(得分:206)

这对我有用: (在你的项目的build.gradle中)

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

答案 1 :(得分:49)

  

免责声明:尽管此答案有超过10个upvotes,但它并未解决 Android 项目中的问题。但是,谷歌在非Android项目的背景下发现了这个问题。因此,我为这些家伙保留了这个答案。

根据JavaCompile,以下似乎是解决方案:

compileJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

如果您希望它包含测试用例,请使用compileTestJava

compileTestJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

答案 2 :(得分:5)

将其放入您的 build.gradle 文件(根目录)中:

allprojects { // Projects
   gradle.projectsEvaluated {
      tasks.withType(JavaCompile) {
         options.encoding = 'UTF-8'
         options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
      }
   }
}

答案 3 :(得分:3)

我有一个不同的编译参数来设置。以下适用于我。

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-XDignore.symbol.file"
        options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar"
    }
}

您必须为不安全和sun.swing。*类之类的东西设置JDK 1.8及更高版本的引导类路径。修复源代码特别针对后者,因为Jigs的Jigsaw Java 9将最终使这些方法无法访问(!)。考虑自己警告。

答案 4 :(得分:0)

我不确定问题是否与使用Gradle subprojects配置参数有关,但与您使用的语法有关:

options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"

这对我有用:

subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs += [
        '-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
        '-Xlint:deprecation', // Shows information about deprecated members.
      ]
    }
  }
}

subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  }
}

如果只想添加一个选项(通常会添加更多),则只需在任务JavaCompile内添加:

options.compilerArgs << "-Xlint:unchecked"

您可以找到有关皮棉herehere的更多信息。

答案 5 :(得分:0)

对于使用gradle.kts的所有人,请使用以下内容与简单的build.gradle文件匹配

build.gradle.kts

afterEvaluate {
        tasks.withType(JavaCompile::class) {
            options.compilerArgs.add("-Xlint:unchecked")
            options.compilerArgs.add("-Xlint:deprecation")
        }
    }

build.gradle

 gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }

答案 6 :(得分:0)

要弃用,您现在可以在gradle kotlin脚本中使用它,这比修改GET /_search { "query": { "query_string": { "query": "activityOwnerId:(id1 OR id2 OR id3...)" } } } 更好,因为它是类型安全的:

compilerArgs