我在我的Android項目中使用xstream-android.jar執行多個任務。但是當我釋放它時,它會提示proguard會進行通常的優化和混淆處理。由於我使用的是XStream,並且讓他們將XML解析爲POJO的列表,以便輕鬆地使用XML,我遇到了XStream無法與proguard一起正常工作的問題。XStream和Proguard
08-19 03:39:25.440: W/System.err(1522): com.thoughtworks.xstream.converters.ConversionException: HospitalCode : Didn't find class "HospitalCode" on path: /data/app/com.mobilefh.medicalregister-1.apk 08-19 03:39:25.440: W/System.err(1522): ---- Debugging information ---- 08-19 03:39:25.440: W/System.err(1522): message : HospitalCode : Didn't find class "HospitalCode" on path: /data/app/com.mobilefh.medicalregister-1.apk 08-19 03:39:25.440: W/System.err(1522): cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException 08-19 03:39:25.440: W/System.err(1522): cause-message : HospitalCode : Didn't find class "HospitalCode" on path: /data/app/com.mobilefh.medicalregister-1.apk 08-19 03:39:25.440: W/System.err(1522): class : java.util.List 08-19 03:39:25.440: W/System.err(1522): required-type : com.mobilefh.medicalregister.b.b.f 08-19 03:39:25.440: W/System.err(1522): path : /list/Hospital/HospitalCode 08-19 03:39:25.440: W/System.err(1522): -------------------------------
我與ProGuard的選擇,就像沒有讓XStream的試驗工作圍繞:
-libraryjars庫/ XStream的-的android.jar
-keep類com.thoughtworks.xstream * {;}
我非常感謝,如果有人有建議如何解決這個問題。讓XStream與proguard一起工作。
在此先感謝
wikistar
Proguard的混淆可能(閱讀:重命名)你的POJO和它的領域,這意味着XStream的是不再能夠對他們匹配的XML標記。您需要在Proguard配置文件中排除需要從xml映射到POJO的任何內容。或者換言之:確保排除每個具有XStream註釋的類。 –
謝謝MT,你救了我的一天。 – wikistar