我有一个包含一些数据类的包,并且我正在尝试使用Kotlin反射在运行时访问构造函数clazz.primaryConstructor
。一切都按预期工作,但是当我启用R8时,数据类元数据被删除,因此例如当我检查KClass isData
是否为假时,它会返回false,并且主构造函数也为空,这仅在启用R8时发生。
我尝试了所有方法,包括给所有数据类添加@keep
注释,以及添加保留models包中所有内容的规则,我还添加了以下规则:
-keep class kotlin.reflect.**
-keep class kotlin.Metadata { *; }
但仍然没有运气,有任何想法是哪里出错了或如何修复此问题?
提前致谢。
clazz.primaryConstructor
为空,而clazz.isData
为false。 - Ahmad Mahmoud Salehkotlin-reflect
1.5.31,您应该将其与您的Kotlin版本保持一致。 - sgjesse