如果使用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.javathis包中。关于应该在Proguard配置文件中使用什么选项来克服此问题的任何建议?

最佳答案

我刚刚使用带有 Ektorp 依赖项的 Proguard 遇到了这个问题。 TypeReference 是一个泛型,-keepattributes Signature 将保留泛型信息。

我实际上使用了以下内容,这解决了我的问题。

-keepattributes Signature,*Annotation*,EnclosingMethod

Proguard Examples :

关于Android Proguard - Jackson 的 TypeReference 类中的 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9282721/

10-08 21:13