2011-10-07 10 views
12

Więc prawie zawsze zaczerpnąć wiadomość tak, gdy jestem kompilowanie mojego Android App:Zastosowanie Xlint: Wycofanie z Androidem

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

Jak przekompiluj go z tej opcji? Czy muszę edytować coś w moim pliku build.xml?

+2

Jeśli używasz Gradle zamiast Ant, zobacz http://stackoverflow.com/questions/18689365/how-to-add-xlintunchecked-to-my-android-gradle-based-project – aleb

Odpowiedz

11

Tak, za poniżej w pliku build.xml oświadczeniu, jeśli chcesz ...

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

To znaczy:

  1. Przejdź do $ ANDROID_SDK_ROOT/Narzędzia/ant /main_rules.xml i skopiuj plik docelowy "kompilacja".

  2. wkleić go do pliku build.xml przed < setup/> zadań.

  3. Następnie dodać następujący element do zadania:

    <compilerarg value="-Xlint:deprecation"/> 
    
  4. Podobnie, można dodać inne opcje kompilatora, jak w przypadku operacji niekontrolowanych:

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

Awesome. Spróbuję tego, kiedy wrócę do domu i prawdopodobnie przegłosuję i przyjmuję twoją odpowiedź. –

2

Wygląda na to, powinieneś być w stanie określić opcję w build.properties lub ant.properties w katalogu głównym twojego folderu projektu. Próbowałem tego i nie działało. Chciałem uniknąć edytowania pliku build.xml, ponieważ spowoduje to dodatkowe komplikacje w przyszłości, jeśli konieczne będzie zaktualizowanie projektu. Jednak nie byłem w stanie znaleźć sposobu na obejście tego problemu. Jednak zamiast kopiowania cały compile cel I dodaje:

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

tuż przed linią na dole pliku import.

23

Te właściwości mogą być również określone w wierszu polecenia Ant, unikając zmiany:

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

Aby włączyć wszystkie ostrzeżenia Lint:

ant -Djava.compilerargs=-Xlint debug

+0

Dzięki. Doskonała sugestia. – Bram

14

jeszcze prostsze i bez konieczności skopiuj kompletny cel javac: umieść następujący wiersz w pliku ant.properties:

java.compilerargs=-Xlint:unchecked 

W ten sposób nadpisuje java.compilerargs z domyślnej konfiguracji budowania Androida SDK. (Możesz sam sprawdzić, czy domyślnie jest pusty, btw). Brak bałaganu z aktualizacją SDK, która może zmienić domyślny cel javac bez powiadomienia o projekcie.

Po prostu bardziej ziarnisty sposób! :)