我不使用Android,但我使用build.gradle从命令行构建所有内容。我生成了这样一个Lint报告:
./gradlew lint这正确地生成了一个Lint报告,但是它也这样说:
Note: MyActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.这让我想知道我怎么能做到这一点?我试过以下几种方法:
./gradlew lint -Xlint:deprecation但不起作用。上面写着:
Problem configuring task :app:lint from command line.
Unknown command-line option '-X'.那么,我如何通过gradle将-Xlint:deprecation传递给Lint呢?
发布于 2018-05-11 10:47:18
要回答我自己的问题,您需要在项目级别的build.gradle文件中添加以下内容:
allprojects {
...
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation"
}
}
}发布于 2020-08-24 21:15:26
自从我最近遇到这个问题以来,我有一个新的消息:
您可以按照“接受的答案”中的@Andreas建议的方式获得这个弃用问题的详细信息。如果您正在使用Kotlin,真正的解决方案是(在build.gradle中):
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add("-Xlint:deprecation")
}
}
}另一个解决方案是更新您的AndroidSDK。问题在于SDK方法覆盖了不推荐的特性。在build.gradle文件中,您可以更改compileSdkVersion:
android {
compileSdkVersion 29 //Change this to the latest release
...
...
defaultConfig {
...
targetSdkVersion 29 //Change this too
...
}
}使用最新的SDK版本可能会解决您的问题。Android很好地解决了版本之间的弃用问题。如果它仍然存在,您可能只需要等到下一个SDK发行版。如果问题不在AndroidSDK中,而是在您下载的包中,则应该查看该包是否需要升级或与该包的管理人员联系。
发布于 2021-09-16 09:31:52
Kotlin (build.gradle.kts)版本的其他答案:
allprojects {
gradle.projectsEvaluated {
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(arrayOf("-parameters", "-Xlint:deprecation"))
}
}
}https://stackoverflow.com/questions/49711773
复制相似问题