2014-11-14 11 views
5

Moja Gradle projekt zawiera jeden główny i jeden moduł bibliotekiGradle nie może odnaleźć symbol wewnętrznej klasy po PROGUARD

Jedna klasa biblioteki zawiera enum, Ive wyłączone z PROGUARD zaciemniania, ponieważ jest on używany w głównym projekcie .

Gradle nie na kompilacji z „błędem. Nie można odnaleźć symbol zmienny MyEnum” i ten sam błąd idzie także dla innego interfejsu, który jest również zadeklarowanej wewnątrz klasy

Ive decompiled plik classes.jar z moja biblioteka, która została wygenerowana podczas kompilacji, a enum jest dokładnie tam, gdzie "nie można go znaleźć" jako MyClass $ MyEnum. Klasa "MyClass" jest nadal dostępna w odpowiednim miejscu po kompilacji.

to Ive kod PROGUARD wykorzystywane do mojego wyliczenia:

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

jestem nie wolno dodawać żadnego kodu

Czy istnieje jakiś specjalny trik z klas wewnętrznych, przy użyciu ProGuard ??

Odpowiedz

7

Nie testowałem jakom ekstrakcji moją wewnętrzną klasę teraz, ale to powinno działać

-keep class my.outer.Class$MyInnerClass 
-keepattributes InnerClasses 
Powiązane problemy