Proguard混淆删除类型



在使用混淆运行Proguard后,我得到以下错误:

Could not find type for field 'significantEvents' private java.util.HashMap com.fsr.tracker.PersistedState.significantEvents at index 1

此错误发生在以下代码中,我使用simpleXML序列化器序列化对象(persistedState):

Serializer serializer = new Persister(new DateMatcher());
ByteArrayOutputStream outputStream  = new ByteArrayOutputStream();
serializer.write(persistedState,outputStream);
return outputStream.toString();

在PersistedState类中,有一个HashMap定义如下:

private HashMap<String, SignificantEvent> significantEvents = new HashMap<String, SignificantEvent>();

错误似乎表明HashMap (SignificantEvent)中第二个字段的类型未找到,但我在保护时非常小心不要混淆显著事件类,并且映射输出当然似乎表明所有所需的类和方法都存在,但当我禁用混淆时没有错误。

有没有人知道如何配置Proguard来防止这个错误?我现在完全不知所措,所以任何指针都将是一个很大的帮助:)

事实证明有一个简单的解决方案。我必须在proguard.cfg中添加以下行:

-keepattributes Signature

紫百合!

相关内容

  • 没有找到相关文章

最新更新