【发布时间】:2016-04-07 05:10:42
【问题描述】:
我有一个如下定义的数据类
package com.mypackage.model
object Model {
data class News(val photo: String, val title: String, val description: String)
}
当我使用 Proguard 编译它(即发布版本)时,我收到并存储在模型中的数据全部变为空。它们仍然存在,即 ArrayList listOfNews 确实具有预期的检索大小。但是它们的所有内容都是空的。
调试构建这没关系。为了解决这个问题,我使用了这个proguard规则,它解决了这个问题。
-keep class com.mypackage.model.** { *; }
这是预期的吗?即所有数据类都应该受到保护?
【问题讨论】:
-
您收到的是
java.lang.ClassNotFoundException还是java.lang.NoSuchMethodError?如果不是,那很可能不是 Proguard 的错。 -
没有真正得到任何东西。它只是默默地运行,我的程序仍然有效。但数据为空。也许我需要浏览日志消息。
-
查看日志,没有看到任何此类消息。鉴于这是一个发布版本,可能不会显示所有调试日志。如果我更改为调试版本,则此错误不再出现,因此在调试版本中没有任何问题的痕迹。
-
您在模型中究竟是如何存储数据的?你在使用反射吗?
标签: proguard kotlin android-proguard data-class