Proguard – 不要混淆Kotlin数据类

在我的项目中,我使用AutoValue来处理旧的模型类。 我开始使用Kotlin,我想使用数据类而不是AutoValue。 我想在我的数据层中禁用所有Data类的模糊处理,但要保留包中的其他类的模糊处理。

有没有办法做到这一点?

我希望在我的Proguard文件中有这样的东西:

-keepclassmembers data class example.data_layer.** { *; } 

为了解决这个问题,我将模型类移动到了模型包中,并为添加了新的ProGuard规则。

 -keep class com.company.myfeature.model.** { *; } 

另一种解决方案是使用支持库中的@Keep注释来禁用类的混淆:

 @Keep data class MyRequestBody(val value: String) 

使用@Keep可能会导致问题,因为很容易忘记将它添加到新类中。

希望将来有一种方法可以使用一个ProGuard规则禁用所有包中的Data类的模糊处理,而不需要为模型类提供一个子包。