我定义了一个名为@KeepAll
的注释。
我有一个像
@KeepAll
public interface MainEntity {
//some methods
}
我想避免混淆实现该接口的所有类。在ProGuard上可以吗?
注意我知道我可以定义为
-keep public class * implements **.MainEntity
但是我不想指定接口名称,而是要指定注释名称。
最佳答案
经过长时间的反复试验,我得到了想要的东西。这是解决方案
用注释KeepAll保留类名称;
-keep @com.package.name.KeepAll public class **
保留类的类成员并使用注释KeepAll进行接口;
-keepclassmembers @com.package.name.KeepAll class ** { public <methods>; <fields>;}
保留实现带有KeepAll批注的类的类的类成员。 (这就是我想要的)
-keepclassmembers public class * implements @com.package.name.KeepAll ** { public <methods>; <fields>;}