2014-11-14 23 views
5

Il mio progetto Gradle contiene un modulo principale e una libreriaGradle non riesce a trovare il simbolo della classe interna dopo Proguard

Una classe della libreria contiene un enum, Ive esclusi da Proguard offuscamento perché è usato nel progetto principale .

Gradle non riesce a costruire con "l'errore. Non riesce a trovare il simbolo MyEnum variabile" e lo stesso errore va anche per un'altra interfaccia, che è anche dichiarata all'interno di una classe

Ive decompilato il file classes.jar di la mia libreria, che è stata generata su build e l'enum, si trova esattamente nel punto in cui "non può essere trovata" come MyClass $ MyEnum. Anche la classe "MyClass" è ancora esistente nel posto giusto dopo la compilazione.

Questo è il codice Proguard Ive utilizzato per il mio enum:

-keep,allowoptimization enum com.mypackage.MyClass$MyEnum { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
    **[] $VALUES; 
    public *; 
} 

io non sono autorizzato a postare nessun codice

C'è qualche trucco speciale con le classi interne, quando si utilizza Proguard ??

risposta

7

Non testet come ho estratto la mia classe interna ora, ma questo dovrebbe funzionare

-keep class my.outer.Class$MyInnerClass 
-keepattributes InnerClasses 
Problemi correlati