2013-01-22 31 views
15

Tôi đang cố gắng tạo bản phát hành Android với Ant và ProGuard. Tôi uncomment dòng sau trong project.properties, mặc dù nhận xét trong nói tập tin lưu ý rằng bạn không nên thay đổi nó;):Các lớp không xác định Ghi chú ILicensingService khi làm xáo trộn dự án Android

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

Khi Obfuscating, tôi nhận được lưu ý sau:

[proguard] Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService' 
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 

Tôi hiểu tại sao điều này lại xảy ra. Những dòng này có thể được tìm thấy trong các tập tin ProGuard mặc định cấu hình ($ {} sdk.dir /tools/proguard/proguard-android.txt):

-keep public class com.google.vending.licensing.ILicensingService 
-keep public class com.android.vending.licensing.ILicensingService 

tôi không sử dụng Dịch vụ cấp phép của Google, vì vậy các lớp học thực sự không rõ. Tôi tìm thấy một giải pháp để thoát khỏi những ghi chú bằng cách cập nhật Proguard-project.txt:

-dontnote **ILicensingService 

Câu hỏi của tôi: Đây có phải là cách chính xác năng xử lý này? Dường như với tôi rằng những lớp này không được giữ mặc định, vì lib đó không bắt buộc đối với một dự án android. Cách duy nhất tôi có thể nghĩ đến để đạt được điều này là bằng cách sao chép tập tin cấu hình mặc định vào dự án của tôi, loại bỏ các dòng -keep và bỏ qua các tập tin cấu hình mặc định trong SDK hoàn toàn. Mà không có vẻ như là một cách thích hợp để đi một trong hai. Hay tôi đang thiếu một cái gì đó?

Trả lời

17

Cài đặt "-dontnote com.google.vending.licensing.ILicensingService" là tốt. Trên thực tế, nó có thể là một phần của tệp cấu hình mặc định.

  1. Tùy chọn bảo trì có thể cần thiết cho các dự án sử dụng thư viện.
  2. Tùy chọn -dontnote có thể tốt đẹp để ngăn chặn ghi chú về tùy chọn -keep, đối với các dự án không sử dụng thư viện. Lưu ý chỉ là một lời nhắc nhở nhẹ nhàng rằng tệp cấu hình có thể chứa lỗi đánh máy, vì lớp được chỉ định dường như không tồn tại. Nó không ảnh hưởng đến việc xử lý.
+0

Ah, có ý nghĩa theo một cách. Tôi sẽ đi với tùy chọn -dontnote sau đó. Cảm ơn bạn đã xây dựng! Nhiều đánh giá cao. –

+0

Để tham khảo (Công cụ SDK 21): Không chạy 'android update project -p.' * sau * chỉnh sửa proguard-project.txt và * trước * cho phép proguard trong project.properties. Nó sẽ xóa tất cả thay đổi. Sau khi proguard được bật, các thay đổi sẽ được giữ lại. –

+0

hi, tôi đang cố gắng để xây dựng dự án của tôi với xây dựng kịch bản và ProGuard. tôi cũng phải đối mặt với cùng một vấn đề. không thể hiểu phải làm gì để khắc phục vấn đề này. vì vậy bạn có thể vui lòng giúp đỡ với một số ví dụ những gì tôi phải làm. – Raj

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