【问题标题】:Kotlin: Need to proguard Kotlin Data Class?Kotlin:需要保护 Kotlin 数据类?
【发布时间】: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


【解决方案1】:

据我所知,这种行为是意料之中的。这可能与它们可序列化有关。我还必须将模型类添加到 proguard。

【讨论】:

    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多