Java 使用Xlint:android的弃用
因此,当我编译android应用程序时,我几乎总是收到这样的信息:Java 使用Xlint:android的弃用,java,android,build,deprecated,Java,Android,Build,Deprecated,因此,当我编译android应用程序时,我几乎总是收到这样的信息: [javac] Note: /home/kurtis/sandbox/udj/androidApp/src/org/klnusbaum/udj/PlaylistFragment.java uses or overrides a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. 如何使用此选项重新编译?我必须在build.xm
[javac] Note: /home/kurtis/sandbox/udj/androidApp/src/org/klnusbaum/udj/PlaylistFragment.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
如何使用此选项重新编译?我必须在build.xml中编辑某些内容吗?是的,根据build.xml文件中下面的语句,如果您想 - Customize only one target: - copy/paste the target into this file, *before* the <setup/> task. - customize it to your needs. -仅自定义一个目标: -将目标复制/粘贴到此文件中,*在*之前 任务 -根据您的需要定制它。 这意味着:
<compilerarg value="-Xlint:deprecation"/>
<compilerarg value="-Xlint:unchecked"/>
看起来您应该能够在项目文件夹根目录中的
build.properties
或ant.properties
中指定该选项。我试过这个,但似乎不起作用。
我希望避免编辑我的build.xml
文件,因为如果以后需要更新项目,这会增加复杂性。然而,我却找不到一个解决办法。但是,我没有复制整个compile
target,而是添加了:
<property name="java.compilerargs" value="-Xlint:unchecked" />
就在文件底部的
导入
行之前。这些属性也可以在Ant命令行上定义,避免编辑:
ant“-Djava.compilerargs=-Xlint:unchecked-Xlint:deprecation”调试
要启用所有林特警告,请执行以下操作:
ant-Djava.compilerargs=-Xlint debug
更简单,无需复制完整的javac目标:在ant.properties文件中放入以下行:
java.compilerargs=-Xlint:unchecked
这样,它只会覆盖Android SDK默认构建配置中的java.compilerargs。(顺便说一句,您可以自己检查它默认为空)。SDK更新不会导致在不通知项目的情况下更改默认javac目标的混乱
只是一种更精细的方法而已!:) 如果您希望有一个好的CI+CD管道,并且您关心自己的代码质量,那么向top/root gradle.build添加以下内容是显示有关lint投诉的更多信息的一个好方法:
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs += [
'-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
'-Xlint:deprecation', // Shows information about deprecated members.
]
}
}
}
或
现在是2018年,你可以依靠Gradle来完成这项工作。我只添加了两个编译器参数选项,但还有更多。您可以找到更多信息和信息。太棒了。我回家后会试试这个,可能会投票接受你的答案。谢谢。非常好的建议。如果使用Gradle而不是Ant,请参阅
subprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}
options.compilerArgs << "-Xlint:unchecked"