2016-04-07 4 views
1

У меня есть класс данных, определенный, как показано нижеKotlin: Нужно ли защищать класс данных Kotlin?

package com.mypackage.model 

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

Когда я компилирую его с помощью ProGuard (то есть версии выпуска), данные, которые я получил и хранить в модели все становится нулевым. Они все еще там, то есть список ArrayList. У списка OfNews есть ожидаемый размер. Однако все их содержимое равно null.

Отладка сборки это нормально. Чтобы решить эту проблему, я использую эти правила proguard и решаю проблему.

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

Ожидается ли это? т.е. весь класс данных должен быть защищен?

+0

Вы получаете 'java.lang.ClassNotFoundException' или' java.lang.NoSuchMethodError'? Если это не так, скорее всего, не ошибка Proguard в вашем случае. – miensol

+0

На самом деле ничего не получилось. Он просто работает, и моя программа все еще работает. Но данные равны нулю. Возможно, мне нужно просканировать сообщения журнала. – Elye

+0

Проверьте журнал, не видя никаких сообщений. Учитывая, что это релиз, все журналы отладки не отображаются. Если я перейду на сборку отладки, эта ошибка больше не будет отображаться, поэтому в отладочной сборке не останется никаких проблем. – Elye

ответ

0

Насколько я могу судить, такое поведение ожидается. Это может быть связано с их сериализацией или так. Мне также нужно добавить классы моделей в proguard.

Смежные вопросы