如果使用proguard进行混淆,Android应用程序将崩溃。下面是堆栈跟踪。
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)
我正在使用
EktorpClient
库(要与该沙发床一起使用),并且StdCouchDbInstance.java
指的是this文件,而TypeReference.java
在this包中。关于应该在Proguard配置文件中使用什么选项来克服此问题的任何建议? 最佳答案
我刚刚使用带有 Ektorp 依赖项的 Proguard 遇到了这个问题。 TypeReference 是一个泛型,-keepattributes Signature
将保留泛型信息。
我实际上使用了以下内容,这解决了我的问题。
-keepattributes Signature,*Annotation*,EnclosingMethod
从 Proguard Examples :
关于Android Proguard - Jackson 的 TypeReference 类中的 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9282721/