小编Ahm*_*leh的帖子

Kotlin 1.6.0 的 proguard / R8 删除了数据类元数据

我有一个包含一些数据类的包,我尝试使用 Kotlin 反射在运行时访问构造函数clazz.primaryConstructor,一切都按预期工作,但是当我启用 R8 时,数据类元数据被删除,例如当我检查它是否KClass isData返回 false 时并且主构造函数也为 null,这仅在启用 R8 时发生。我尝试了一切,包括@keep向所有数据类添加注释并添加规则以将所有内容保留在模型包中,我还添加了这些规则

-keep class kotlin.reflect.**

-keep class kotlin.Metadata { *; }
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气,知道出了什么问题或如何解决这个问题吗?

示例回购协议

提前致谢。

android proguard kotlin kotlin-reflect android-r8

5
推荐指数
1
解决办法
3410
查看次数

标签 统计

android ×1

android-r8 ×1

kotlin ×1

kotlin-reflect ×1

proguard ×1