1

我在我的 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 一起工作。

在此先感谢

维基之星

4

2 回答 2

1

这就是我处理 XStream 1.4.7 和 Proguard 的方式。proguard-project.txt在文件中添加以下 2 行:

-keep class com.thoughtworks.** { *; }
-dontwarn com.thoughtworks.**
于 2016-12-06T14:22:15.340 回答
0

您可以先尝试反编译您的 apk 文件并仔细检查类 HospitalCode 是否真的存在吗?

那么我认为最可能的答案是您没有在您的 APK 发行版中包含整个 JAR 文件。

于 2013-08-19T04:04:44.290 回答