Proguard – do not obfuscate Kotlin data classes

To fix the problem I moved the model classes to model package and added new ProGuard rule for the package.

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

Another solution would be to use @Keep annotation from support library to disable the obfuscation for the class:

@Keep
data class MyRequestBody(val value: String)

Using @Keep may cause problems because it’s easy to forget to add it for new classes.

Hopefully in future there will be a way with one ProGuard rule to disable the obfuscation for all Data classes in package without the need to have a sub-package for the model classes.

Leave a Comment