2011-10-07 35 views
12

Vì vậy, tôi hầu như luôn luôn có được một số thông điệp như thế này khi tôi đang soạn thảo ứng dụng Android của tôi:Sử dụng Xlint: deprecation với 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. 

Làm thế nào để biên dịch lại với tùy chọn này? Tôi có phải chỉnh sửa gì đó trong tệp build.xml của mình không?

+2

Nếu sử dụng Gradle thay vì Ant, hãy xem http://stackoverflow.com/questions/18689365/how-to-add-xlintunchecked-to-my-android-gradle-based-project – aleb

Trả lời

11

Vâng, mỗi báo cáo kết quả dưới đây trong file build.xml, nếu bạn muốn ...

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

Điều đó có nghĩa:

  1. Chuyển đến $ ANDROID_SDK_ROOT/tools/ant /main_rules.xml tệp và sao chép mục tiêu "biên dịch".

  2. Dán mã vào tệp build.xml trước nhiệm vụ < thiết lập/>.

  3. Sau đó thêm các yếu tố sau đây để các nhiệm vụ:

    <compilerarg value="-Xlint:deprecation"/> 
    
  4. Tương tự như vậy, bạn có thể thêm các tùy chọn trình biên dịch khác, chẳng hạn như đối với hoạt động đánh dấu:

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

Tuyệt vời. Tôi sẽ cố gắng này khi tôi về nhà và có lẽ upvote và chấp nhận câu trả lời của bạn. –

2

Dường như bạn chỉ có thể chỉ định tùy chọn trong số build.properties hoặc ant.properties trong thư mục gốc của thư mục dự án của bạn. Tôi đã thử điều này và nó dường như không hoạt động. Tôi muốn tránh chỉnh sửa tệp build.xml vì điều này làm tăng thêm sự phức tạp sau này nếu bạn cần cập nhật dự án của mình. Tuy nhiên, tôi không thể tìm thấy một cách nào đó. Tuy nhiên, thay vì sao chép toàn bộ compile mục tiêu tôi đã thêm:

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

ngay trước import dòng ở dưới cùng của tập tin.

23

Các tính chất này cũng có thể được xác định trên dòng lệnh Ant, tránh chỉnh sửa:

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

Để kích hoạt tất cả các cảnh báo Lint:

ant -Djava.compilerargs=-Xlint debug

+0

Cảm ơn. Gợi ý tuyệt vời. – Bram

14

Thậm chí đơn giản và không có nhu cầu sao chép một mục tiêu javac hoàn chỉnh: đặt dòng sau vào tệp ant.properties:

java.compilerargs=-Xlint:unchecked 

Bằng cách này, nó chỉ ghi đè java.compilerargs từ cấu hình xây dựng mặc định của Android SDK. (Bạn có thể tự kiểm tra xem nó có trống không theo mặc định, btw). Không gây rối với bản cập nhật SDK có thể thay đổi mục tiêu javac mặc định mà không có dự án của bạn được thông báo.

Chỉ cần một cách chi tiết hơn để làm! :)

Các vấn đề liên quan