2012-03-05 49 views
11

trước hết, xin lỗi nếu chủ đề này đã được trả lời, nhưng tôi chưa tìm thấy nó ...Proguard với Android và Google API Client

Tôi mới sử dụng Android và Proguard. Vào cuối của việc phát triển ứng dụng của tôi, tôi muốn giảm kích thước của nó bằng cách sử dụng proguard, tất nhiên. Khi tôi đang sử dụng một số thư viện từ ứng dụng khách google api trong ứng dụng của tôi, tôi đã thêm chúng làm các jars bên ngoài.

Vâng, ứng dụng của tôi đang hoạt động bình thường mà không qua bước bảo vệ, nhưng khi tôi cố gắng xuất nó, nó bắt đầu đau đầu của tôi. Rất nhiều cảnh báo rằng tôi không biết cách bỏ qua hoặc sắp xếp. Một cái gì đó như thế này:

[2012-03-05 07:20:06 - CollaJoveThreads] Proguard returned with error code 1. See console 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable 
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable 

và các loại tương tự khác.

Tôi đã theo các nhà phát triển recomendations Google, và thêm vào dòng này để proguard.cfg tôi:

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection 
-keepclassmembers class * { 
    @com.google.api.client.util.Key <fields>; 
} 

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault,*Annotation* 

-dontwarn sun.misc.Unsafe 

nhưng nó vẫn tiếp tục xuất hiện tất cả các thông báo cảnh báo. Và khi tôi cố gắng sử dụng tùy chọn '-dontwarn', ứng dụng của tôi gặp sự cố.

Tôi đã đọc những câu hỏi này, và nhiều hơn nữa:

bất cứ ai có thể giúp đỡ?

+1

Xin lỗi, tôi đã tìm thấy: nó thiếu tệp jar 'jsr305-1.3.9' (tôi không nhận ra trước đó). Cảm ơn vì tất cả. – emiquelgavalda

Trả lời

16

Xin chào Tôi biết rằng điều này đã được giải quyết bằng cách thêm vào tệp hồ sơ jsr305 vào dự án của bạn. Tuy nhiên, tôi mất một thời gian để tìm ra nơi tôi có thể tìm thấy cái bình này và phải làm gì với nó.

Bạn có thể nhận được phiên bản mới nhất của jar này tại here Tải jar mới nhất và đặt nó trong thư mục libs của bạn, sau đó thêm nó vào bạn xây dựng con đường trong Eclipse và tất cả mọi thứ nên được quyền đi.

Điều này cũng khắc phục mọi sự cố của tôi.

+11

Đối với người dùng Gradle, chỉ cần thêm 'compile 'com.google.code.findbugs: jsr305: 2.0.2'' vào phụ thuộc build.gradle. – Jonik

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