Kotlin: 需要使用Proguard混淆Kotlin数据类吗?

5

我有一个数据类,如下所示:

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.** { *; }

这是预期的吗?即所有数据类都应该进行ProGuard处理吗?


你是否遇到了 java.lang.ClassNotFoundException 或者 java.lang.NoSuchMethodError?如果没有,那么在你的情况下很可能不是 Proguard 的问题。 - miensol
什么也没得到。它只是默默地运行,我的程序仍然可以工作。但数据为空。也许我需要浏览日志信息。 - Elye
检查日志,没有看到任何这样的消息。考虑到这是发布版本,所有调试日志都不会显示。如果我切换到调试构建,那么这个错误就不再出现了,因此在调试构建中没有问题的痕迹。 - Elye
你的模型是如何存储数据的?你使用反射吗? - yole
1个回答

1
据我所知,这种行为是预期的。可能与它们被序列化有关。我还必须将模型类添加到Proguard中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接