2012-02-14 24 views
7

Göz korkutmak için proguard kullanılıyorsa Android uygulaması çöküyor. Aşağıda stacktrace.Android Proguard - Jackson'ın TypeReference sınıfında IllegalArgumentException

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) 

Ben EktorpClient kitaplığı kullanıyorum (CouchDB çalışmak için) ve StdCouchDbInstance.javathis dosya gelir ve TypeReference.javathis paket içinde bulunmaktadır. Bu sorunu aşmak için Proguard yapılandırma dosyasında hangi seçeneği kullanmam gerektiğine dair herhangi bir öneri var mı?

+0

Bunun için bir çözüm buldunuz mu? –

+0

no. henüz değil. Jackson'ı nasıl atlayabileceğimi görmem gerek. – 500865

cevap

14

Proguard'ı Ektorp bağımlılığı ile kullanarak bu soruna yeni girdim. TypeReference geneldir ve -keepattributes Signature genel bilgileri koruyacaktır.

Aslında, sorunu gideren aşağıdakileri kullandım. Proguard Examples itibaren

-keepattributes Signature,*Annotation*,EnclosingMethod 

:

"İmza" özelliği JDK 5.0 ve üstü derlerken kullanılan jenerik türlerini erişmek mümkün gereklidir.

+0

Teşekkürler David benim sorunumu çözdü :) – Bojan

+0

teşekkürler, benim de sorunumu çözdü: D – cn123h

0

ProGuard gibi sesler bir şekilde jenerik tip bilgisini (Tip parametrelerinin geçirilmesi) yanlış kullanmaktadır. Bilinen bir ProGuard sorunu olup olmayacağını bilmiyorum; Ancak, başkaları bununla karşılaştıysa, Jackson kullanıcılarına posta listesi kontrol edebilirsiniz. Ayrıca, farklı bir Jackson versiyonunu deneyebilirsiniz, ancak sınıf TypeReference'un çok değiştiğini düşünmüyorum.