使用Xlint:与android弃用

Kur*_*aum 13 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.
Run Code Online (Sandbox Code Playgroud)

如何使用此选项重新编译?我是否必须在build.xml中编辑某些内容?

Joe*_*eer 23

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

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

要启用所有Lint警告:

ant -Djava.compilerargs=-Xlint debug


小智 14

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

java.compilerargs=-Xlint:unchecked
Run Code Online (Sandbox Code Playgroud)

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

只是一个更细粒度的方法!:)


SPi*_*com 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文件并复制"compile"目标.

  2. 在<setup />任务之前将其粘贴到build.xml文件中.

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

    <compilerarg value="-Xlint:deprecation"/>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 同样,您可以添加其他编译器选项,例如用于未选中的操作:

    <compilerarg value="-Xlint:unchecked"/>
    
    Run Code Online (Sandbox Code Playgroud)