考虑到android的以下代码结构:
package blah;
class A{
class B{
public void foo(String s){
}
}
}
Run Code Online (Sandbox Code Playgroud)
我如何告诉proguard不要删除或混淆foo.
foo在编译时是代码中未使用的函数,但是在运行时从另一个代码运行.
我试过了:
-keep class blah.A.B;
-keepclassmembers class blah.A.B {
public void foo(String s);
}
Run Code Online (Sandbox Code Playgroud)
等等,但没有什么能阻止Proguard删除该功能.我不希望proguard改变'foo'的名字.Proguard可能会更改A类或B类的名称,但不能更改函数名称'foo'.有什么建议?
几乎是正确的.在java字节码中,$字符分隔内部类及其外部类的名称(以避免与包名称的歧义).所以,只保留方法:
-keepclassmembers class blah.A$B {
public void foo(java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4507 次 |
最近记录: |