2012-08-15 163 views
8

我试图用ProGuard混淆Android应用程序。Proguard混淆和泛型方法

在这里,我有一个类

public class Book implements DBbinded 

和通用方法

private void storeDBObjects(ArrayList<? extends DBbinded> dbObjects) 

这种方法的调用抛出java.lang.ClassCastException:java.util.LinkedHashMap中混淆了。我应该写入proguard.properties来解决这个问题?

回答

0

这可能是ProGuard中的一个错误。您应该检查安装the latest version是否有帮助(此时ProGuard 4.9 beta1:在android-sdk/tools/proguard/lib中复制proguard4.9beta1/lib/proguard.jar)。否则,您可以在ProGuard's bug tracker上报告问题。

7

我刚刚遇到了此问题,并通过指定-keepattributes ProGuard参数下的“签名”属性来解决此问题。

-keepattributes SourceFile,LineNumberTable,Signature,*Annotation* 

我不相信这是一个ProGuard的bug。希望有所帮助。

+2

是的,签名是在args! – OceanLife 2014-10-16 20:25:57

+0

除了上面提到的这一行外,我还需要添加一个'keepclassmembers类<全限定类名>'来摆脱 – schnatterer 2014-10-16 20:32:05

+0

Sweet的异常。感谢添加。 – OceanLife 2014-10-16 20:35:35