我正在使用 proguard 来混淆我的 Android 应用程序。 Android 应用程序包含一些本机代码,这些代码对完全限定的 java 方法进行回调。我不需要混淆这些类及其方法的名称。下面正确保留了类名称,但没有保留方法名称。
-keep public class com.me.dontobf.*
-keepnames public class com.me.dontobf.*
对于本机方法:ProGuard 手册 > 示例 > 处理本机方法 https://www.guardsquare.com/en/products/proguard/manual/examples#native
# note that <methods> means any method
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
在这种情况下,对于回调方法:ProGuard 手册 > 示例 > 处理回调方法 https://www.guardsquare.com/en/products/proguard/manual/examples#callback
-keep class mypackage.MyCallbackClass {
void myCallbackMethod(java.lang.String);
}
或者例如,如果所有公共方法都可以是回调方法:
-keep class mypackage.MyCallbackClass {
public <methods>;
}
您可能还需要保留方法描述符中出现的任何程序类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)