使用Xlint:与android弃用

时间:2011-10-07 01:10:32

标签: 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.xml中编辑某些内容?

5 个答案:

答案 0 :(得分:23)

也可以在Ant命令行上定义这些属性,避免编辑:

ant "-Djava.compilerargs=-Xlint:unchecked -Xlint:deprecation" debug

启用所有Lint警告:

ant -Djava.compilerargs=-Xlint debug

答案 1 :(得分:14)

更简单,无需复制完整的javac目标:将以下行放在ant.properties文件中:

java.compilerargs=-Xlint:unchecked

这样,它就会覆盖Android SDK默认构建配置中的java.compilerargs。 (你可以自己检查一下它默认是空的,顺便说一下)。如果没有通知您的项目,SDK更新可能会更改默认的javac目标。

更简单的方法! :)

答案 2 :(得分:11)

是的,根据build.xml文件中的以下语句,如果你想...

         - Customize only one target:
             - copy/paste the target into this file, *before* the
               <setup/> task.
             - customize it to your needs.

这意味着:

  1. 转到$ ANDROID_SDK_ROOT / tools / ant / main_rules.xml文件并复制“编译”目标。

  2. 在&lt; setup /&gt;之前将其粘贴到build.xml文件中任务。

  3. 然后将以下元素添加到任务中:

    <compilerarg value="-Xlint:deprecation"/>
    
  4. 同样,您可以添加其他编译器选项,例如未经检查的操作:

    <compilerarg value="-Xlint:unchecked"/>
    

答案 3 :(得分:2)

看起来您应该只能在项目文件夹根目录中的build.propertiesant.properties中指定该选项。我尝试过这个似乎没有用。 我想避免编辑我的build.xml文件,因为如果您需要更新项目,这会增加复杂性。但是,我无法找到解决办法。但是,我没有复制整个compile目标,而是添加了:

<property name="java.compilerargs" value="-Xlint:unchecked" />

就在文件底部的import行之前。

答案 4 :(得分:0)

如果您希望拥有良好的CI + CD管道并且关心代码质量,则可以通过将其添加到top / root gradle.build中来显示有关皮棉投诉的更多信息,这是一个不错的选择:

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"

现在是2018年,您可以依靠Gradle进行设置。我只添加了两个编译器参数选项,但还有更多。您可以找到更多信息herehere