Когда я поставил следующее «держать» правило в моей конфигурации Proguard:Proguard фактически не сохраняет мое классное имя, в чем причина?
-keepclasseswithmembernames class ** implements com.my.package.MyInterfaceName { <fields>; }
Во-первых, кажется, что все мои классы, которые реализуют MyInterfaceName получить их имена классов и полей сохраняется неизменными.
Но на самом деле при запуске эти классы возвращают разные простые имена с помощью getSimpleName().
Возьмите это, например:
public class Foo {
public enum Bar implements MyInterfaceName { X, Y, Z }
}
X.getClass().getSimpleName()
возвращается Foo$Bar
вместо только Bar
, который возвращается без обработки ProGuard.
После некоторых тестов я боюсь, что это не решит мою проблему. Но другое решение, предоставленное Эриком Лафортунтом, действительно работает. –