2011-10-07 41 views
12

所以我几乎总是得到这样一些消息时,我编我的Android应用:使用Xlint:弃用了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中编辑一些东西吗?

+2

如果使用Gradle而不是Ant,请参阅http://stackoverflow.com/questions/18689365/how-to-add-xlintunchecked-to-my-android-gradle-based-project – aleb

回答

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 /工具/蚂蚁/main_rules.xml文件并复制“编译”目标。

  2. 它的<设置/ >任务之前粘贴到你的build.xml文件

  3. 然后将下面的元素添加到任务:

    <compilerarg value="-Xlint:deprecation"/> 
    
  4. 同样,你可以添加其他编译器选项,如选中操作:

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

太棒了。当我回家时,我会试试这个,可能会赞成并接受你的答案。 –

2

它看起来像您应该可以在项目文件夹的根目录中指定build.propertiesant.properties中的选项。我试过这个,它似乎没有工作。 我想避免编辑我的build.xml文件,因为如果您需要更新项目,稍后会增加复杂性。但是,我无法找到解决办法。然而,而不是复制整个compile目标我又说:

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

只是在文件的底部import前行。

23

这些属性也可以Ant命令行上定义的,避免了修改:

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

为了使所有lint警告:

ant -Djava.compilerargs=-Xlint debug

+0

谢谢。优秀的建议。 – Bram

14

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

java.compilerargs=-Xlint:unchecked 

这样,它只是从Android SDK默认构建配置中覆盖java.compilerargs。 (你可以检查自己,它默认情况下是空的,顺便说一句)。没有与SDK更新混淆,可能会更改默认的javac目标,而不通知您的项目。

只是更细化的方式! :)