2011-10-07 5 views
12

Así que casi siempre conseguir un poco de mensaje como este cuando estoy compilar mi aplicación Android:Uso Xlint: desaprobación con el androide

[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. 

¿Cómo puedo volver a compilar con esta opción? ¿Debo editar algo en mi build.xml?

+2

Si usa Gradle en lugar de Ant, consulte http://stackoverflow.com/questions/18689365/how-to-add-xlintunchecked-to-my-android-gradle-based-project – aleb

Respuesta

11

Sí, por la siguiente declaración en el archivo build.xml, si quieres ...

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

Eso significa:

  1. Ir a la ANDROID_SDK_ROOT $/herramientas/ant /main_rules.xml file y copia el objetivo "compilar".

  2. pegarlo en el archivo build.xml antes de la instalación </> tarea.

  3. A continuación, agregue el siguiente elemento de la tarea:

    <compilerarg value="-Xlint:deprecation"/> 
    
  4. Del mismo modo, puede agregar otras opciones del compilador, como para las operaciones sin marcar:

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

Impresionante. Intentaré esto cuando llegue a casa y probablemente votaremos y aceptaremos tu respuesta. –

2

Parece solo debe poder especificar la opción en build.properties o ant.properties en la raíz de la carpeta del proyecto. Intenté esto y no pareció funcionar. Quería evitar editar mi archivo build.xml ya que esto agrega complicaciones más adelante si necesita actualizar su proyecto. Sin embargo, no pude encontrar una forma de evitarlo. Sin embargo, en lugar de copiar todo el objetivo compile añadí:

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

justo antes de la línea de import en la parte inferior del archivo.

23

Estas propiedades también se pueden definir en la línea de comandos Ant, ediciones evitando:

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

para que todas las advertencias Lint:

ant -Djava.compilerargs=-Xlint debug

+0

Gracias. Excelente sugerencia. – Bram

14

Incluso más simple y sin la necesidad de Copie un objetivo completo de javac: ponga la siguiente línea en el archivo ant.properties:

java.compilerargs=-Xlint:unchecked 

De esta manera, simplemente anula java.compilerargs de la configuración de compilación predeterminada de Android SDK. (Puede comprobar usted mismo que está vacío por defecto, por cierto). Sin problemas con la actualización del SDK que podría cambiar el destino predeterminado de javac sin que se notifique su proyecto.

¡Una forma más granular de hacerlo! :)

Cuestiones relacionadas