2012-02-14 35 views
7

Các sự cố ứng dụng Android nếu proguard được sử dụng để làm xáo trộn. Dưới đây là stacktrace.Android Proguard - IllegalArgumentException trong lớp TypeReference của Jackson

Caused by: java.lang.IllegalArgumentException: Internal error: 
    TypeReference constructed without actual type information 
    at a.b.a.g.b.<init>(TypeReference.java:35) 
    at a.c.d.q.<init>(StdCouchDbInstance.java:22) 
    at a.c.d.p.<clinit>(StdCouchDbInstance.java:22) 

Tôi đang sử dụng thư viện EktorpClient (Để làm việc với các couchdb) và StdCouchDbInstance.java đề cập đến this tập tin và TypeReference.java là trong this gói. Bất kỳ đề xuất nào về tùy chọn tôi nên sử dụng trong tệp cấu hình Proguard để khắc phục sự cố này?

+0

Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? –

+0

không. chưa. cần xem cách tôi có thể bỏ qua jackson. – 500865

Trả lời

14

Tôi vừa gặp sự cố này khi sử dụng Proguard với sự phụ thuộc Ektorp. TypeReference là một chung chung, và -keepattributes Signature sẽ giữ thông tin chung.

Tôi thực sự đã sử dụng các yếu tố sau, đã giải quyết được vấn đề của tôi.

-keepattributes Signature,*Annotation*,EnclosingMethod 

Từ Proguard Examples:

Các "Chữ ký" thuộc tính là cần thiết để có thể truy cập vào các loại thuốc chung khi soạn thảo trong JDK 5.0 trở lên.

+0

Cảm ơn David đã giải quyết được vấn đề của tôi :) – Bojan

+0

cảm ơn, nó cũng đã giải quyết được vấn đề của tôi: D – cn123h

0

Âm thanh như ProGuard đang xử lý sai thông tin loại chung (thông qua các thông số Loại) bằng cách nào đó. Tôi không biết đây có phải là vấn đề ProGuard đã biết hay không; nhưng bạn có thể kiểm tra danh sách gửi thư của người dùng Jackson nếu những người khác đã gặp phải điều này. Ngoài ra, bạn có thể thử phiên bản Jackson khác nhau, mặc dù tôi không nghĩ rằng lớp học TypeReference đã thay đổi rất nhiều.

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