1、Proguard returned with error code 1. See console更新proguard版本android-support-v4 不進行混淆添加缺少相應(yīng)的庫2进宝、使用gson包解析數(shù)據(jù)時淤翔,出現(xiàn)missing type parameter異常在 proguard.cfg中添加?1-dontobfuscate
-dontoptimize
在 proguard.cfg中添加?1# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
3使套、類型轉(zhuǎn)換錯誤?1-keepattributes Signature 4濒蒋、空指針異绸陕混淆過濾掉相關(guān)類與方法5霜第、安卓代碼混淆與反射沖突,地圖無法顯示等問題解決及反編譯方法,安卓反編譯此前的代碼混淆僵闯,因為并沒有用到反射卧抗,所以常規(guī)的代碼混淆方式一遍就能通過,而此項目中某些類利用到了反射機制(本人的這個項目中有即時通訊功能鳖粟,所以有表情類資源社裆,因此需要通過反射由文件名找到表情資源id),當由文件名去尋找資源id時就報空指針異常了向图,期初我并不知道什么原因泳秀,通過反編譯已經(jīng)混淆的apk,一步一步尋找到出錯的地方榄攀,才恍然大悟嗜傅,正是反射那一步出現(xiàn)了問題:Field field = R.drawable.class.getDeclaredField(name);走到這一步就掛了,程序直接崩潰航攒。解決辦法:在proguard.cfg文件中,將反射用到的類中的變量不被混淆:?1如:-keep public class com.byl.bean.Expressions { *; }趴梢,表示Expressions 這個類及類中的所有變量及方法不被混淆漠畜,注意要寫全路徑;過濾泛型:?1-keepattributes Signature最重要的一點:保持R文件不被混淆坞靶,否則憔狞,你的反射是獲取不到資源id的?1-keep class **.R$* {*;}補充一下:上個問題解決后,接下來又遇到了一個問題就是混淆后彰阴,地圖無法正常使用了瘾敢,博主使用的是百度地圖,在proguard.cfg也已經(jīng)寫明了:?12-keep class com.baidu.** {*;}-keep class vi.com.** {*;}6尿这、android.provider.Settings$Global?12# Project target.target=android-197簇抵、java.lang.reflect.UndeclaredThrowableException?1-keep interface com.dev.impl.**8、內(nèi)存溢出和無法寫入堆棧?123javaOptions in proguard := Seq(...)orjavaOptions in (Proguard, proguard) := Seq(...) 9射众、Error: Unable to access jarfile ..libproguard.jar路徑問題10碟摆、java.lang.NoSuchMethodError沒有相關(guān)方法,方法被混淆了叨橱,混淆過濾掉相關(guān)方法便可典蜕。