2012-08-15 118 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