1
我有一個類,看起來像這樣:如何保持外部類而混淆的內部類
public class MyClass {
private class MyInnerClass {
public void someFunc() { }
}
public void usefulMethod() {
... some stuff...
nativeUsefulMethod();
}
private native void nativeUsefulMethod();
}
我需要保持的所有本地函數的方法名稱,以及包含它們的類,爲了使本機代碼正常工作。好像沒有什麼問題:
-keepnames class * {
native <methods>;
}
當我看導致罐子,我看到MyClass的和nativeUsefulMethod()依然存在,而usefulMethod()已被模糊處理。好。但是,內部類仍被命名爲「MyClass $ MyInnerClass」。它不包含本地方法,所以我希望它被稱爲「MyClass $ a」或只是「a」。
我測試了將「-keepnames」更改爲「-keepclassmembernames」,並且兩者的類名都被混淆了。這絕對是保持內部類名稱的這個指令。有沒有辦法來混淆外層,但不是內部類名?
事實上,我發現,獨立,但沒有回去檢查結果。 -keepnames class * {...}會導致所有*類名保持不變,而我只在內部類中注意到它。當使用正確的指令時,內部類將被正確模糊處理。 – D0SBoots