2017-09-07 2 views
4

Dans mon projet, j'utilise AutoValue pour mes anciennes classes de modèles. J'ai commencé à utiliser Kotlin et je veux utiliser Data Classes au lieu de AutoValue. Je veux désactiver l'obfuscation pour tous Classes de données dans mon Couche de données mais de garder obfuscating les autres classes dans le paquet.Proguard - ne pas obscurcir les classes de données Kotlin

Existe-t-il un moyen de le faire?

j'attendre d'avoir quelque chose comme ça dans mon Proguard fichier:

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

Répondre

3

Pour résoudre le problème je me suis déplacé les classes de modèle pour package modèle et a ajouté une nouvelle règle ProGuard pour le paquet.

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

Une autre solution serait d'utiliser @Keep annotation de la bibliothèque de support pour désactiver l'obscurcissement de la classe:

@Keep 
data class MyRequestBody(val value: String) 

L'utilisation @Keep peut causer des problèmes, car il est facile d'oublier d'ajouter de nouvelles classes.

Espérons que dans l'avenir il y aura un chemin avec une règle ProGuard désactiver à obscurcissement pour toutes les classes de données dans l'emballage sans qu'il soit nécessaire d'avoir un sous-ensemble pour les classes de modèle .

+0

Je ne voudrais pas d'obfuscation sur toutes les classes de données –