1. 程式人生 > >程式碼混淆與反射衝突

程式碼混淆與反射衝突

因為之前寫的一個專案太亂,最近準備釋出一個新版本,所以把之前的程式碼重構了一遍,而重構後因為用到了反射,在混淆完成後打包出來發現一個很嚴重的bug,NoSuchMethodError,於是把包重新反編譯跟了一遍發現,是因為反射用到了類中的方法因為混淆把方法名給改了,但是在field中還是拼出來的方法,並不會改變,導致找不到原本的方法,只需要在混淆時把和反射有關係的類都加入

-keepclasseswithmembernames class [Package].**
{
*;
}

這段話的意思是把[Package]包名中的class類中的所有成員和方法都不混淆,記錄本次bug