我在我的Android项目中使用xstream-android.jar进行多项任务。但是当我发布它的时候,proguard会进行常规的优化和混淆。由于我正在使用XStream并让他们将XML解析为POJO列表以便轻松使用XML我遇到了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 libs / xstream-android.jar
-keep class com.thoughtworks.xstream。* {;}
如果有人建议如何解决这个问题,我将非常感激。让XStream与proguard一起工作。
提前致谢
wikistar
答案 0 :(得分:1)
这就是我处理XStream 1.4.7和Proguard的方法。在proguard-project.txt
文件中添加以下两行:
-keep class com.thoughtworks.** { *; }
-dontwarn com.thoughtworks.**
答案 1 :(得分:0)
您是否可以首先尝试检查您的apk文件并仔细检查类HospitalCode是否真的存在?
然后我认为最可能的答案是您没有在APK的发布版本中包含整个JAR文件。