2016-04-07 2 views
1

I ont une classe de données défini comme ci-dessousKotlin: Nécessité de promouvoir la classe de données Kotlin?

package com.mypackage.model 

object Model { 
    data class News(val photo: String, val title: String, val description: String) 
} 

Lorsque je compile en utilisant Proguard (à savoir la libération build), les données I reçu et stocker dans le modèle tout devient nulle. Ils sont toujours là, c'est-à-dire que ArrayList listOfNews a la taille recherchée récupérée. Cependant tout leur contenu est nul.

Déboguer construire c'est correct. Pour résoudre cela, j'utilise ces règles proguard, et cela résout le problème.

-keep class com.mypackage.model.** { *; } 

Est-ce normal? c'est-à-dire que toutes les classes de données doivent être protégées?

+0

Avez-vous 'java.lang.ClassNotFoundException' ou' java.lang.NoSuchMethodError'? Sinon, ce n'est probablement pas la faute de Proguard dans votre cas. – miensol

+0

N'a pas vraiment obtenu quoi que ce soit. Il fonctionne silencieusement et mon programme fonctionne toujours. Mais les données sont nulles. Peut-être que j'ai besoin de parcourir les messages du journal. – Elye

+0

Vérifiez le journal et ne voyez aucun de ces messages. Étant donné qu'il s'agit d'une version de version, tout le journal de débogage n'est peut-être pas affiché. Si je change de build de débogage, alors cette erreur ne s'affiche plus, donc pas de trace de problème dans la version de débogage. – Elye

Répondre

0

autant que je peux dire, ce comportement est attendu. Il pourrait être lié à eux étant sérialisable ou alors. Je dois aussi ajouter les classes de modèles à proguard.