2012-08-15 10 views
8

Sto tentando di offuscare un'app Android con ProGuard.Modalità di offuscamento e metodi generici di Proguard

Qui ho una classe

public class Book implements DBbinded 

E un metodo generico

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

La chiamata di questo metodo genera un java.lang.ClassCastException: java.util.LinkedHashMap dopo offuscamento. Cosa dovrei scrivere in proguard.properties per risolvere questo problema?

risposta

0

Questo potrebbe essere un bug in ProGuard. Dovresti controllare se l'installazione di the latest version aiuta (ProGuard 4.9 beta1 in questo momento: copia proguard4.9beta1/lib/proguard.jar in android-sdk/tools/proguard/lib). In caso contrario, è possibile segnalare il problema su ProGuard's bug tracker.

7

Mi sono appena imbattuto in questo problema e l'ho risolto specificando l'attributo 'Firma' sotto l'argomento ProGuard -keepattributes.

-keepattributes SourceFile,LineNumberTable,Signature,*Annotation* 

Non credo che sia un bug di ProGuard. Spero possa aiutare.

+2

Sì, la firma è negli args! – OceanLife

+0

Oltre alla riga sopra indicata, ho dovuto aggiungere una 'classe keepclassmembers ' per eliminare l'eccezione – schnatterer

+0

Sweet. Grazie per l'aggiunta. – OceanLife