2011-10-07 6 views
12

Così ho quasi sempre ottenere qualche messaggio come questo quando sto compilando il mio app Android:Usa Xlint: deprecazione con 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. 

Come posso ricompilare con questa opzione? Devo modificare qualcosa nel mio build.xml?

+2

Se si utilizza Gradle anziché Ant, consultare http://stackoverflow.com/questions/18689365/how-to-add-xlintunchecked-to-my-android-gradle-based-project – aleb

risposta

11

Sì, per l'affermazione di seguito nel file build.xml, se si vuole ...

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

Ciò significa:

  1. Vai $ ANDROID_SDK_ROOT/strumenti/ant /main_rules.xml e copia il target "compile".

  2. incollalo nel tuo file build.xml prima il < setup/> compito.

  3. Quindi aggiungere il seguente elemento al compito:

    <compilerarg value="-Xlint:deprecation"/> 
    
  4. Allo stesso modo, è possibile aggiungere altre opzioni del compilatore, come ad esempio per le operazioni non controllate:

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

Awesome. Ci proverò quando arrivo a casa e probabilmente risparmierò e accetterò la tua risposta. –

2

Sembra dovresti solo essere in grado di specificare l'opzione in build.properties o ant.properties nella directory principale della cartella del progetto. Ho provato questo e non sembra funzionare. Volevo evitare di modificare il mio file build.xml in quanto ciò aggiunge ulteriore complicazione in seguito se è necessario aggiornare il progetto. Tuttavia, non sono riuscito a trovare un modo per aggirarlo. Tuttavia, piuttosto che copiare l'intero compile bersaglio ho aggiunto:

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

poco prima della linea di import alla fine del file.

23

Queste proprietà possono essere definiti anche sulla linea di comando Formica, modifiche evitando:

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

per consentire a tutti gli avvertimenti Lint:

ant -Djava.compilerargs=-Xlint debug

+0

Grazie. Ottimo suggerimento – Bram

14

ancora più semplice e senza la necessità di copia un target javac completo: inserisci la seguente riga nel file ant.properties:

java.compilerargs=-Xlint:unchecked 

In questo modo, sostituisce semplicemente java.compilerargs dalla configurazione di build predefinita di Android SDK. (Puoi verificare da solo che è vuoto di default, btw). Nessun problema con l'aggiornamento dell'SDK che potrebbe modificare il target javac predefinito senza che il progetto venga avvisato.

Solo un modo più granulare! :)