Kotlin, proguard, компоненты архитектуры Android

У меня есть модель представления с живой переменной данных.

Моя активность наблюдает за этим, чтобы обновить пользовательский интерфейс.

В отладке все работает хорошо. Когда я включаю proguard, он больше не наблюдает изменения жилой.

Я проверил, что данные в реальном времени правильно обновлены. Однако обратный вызов наблюдателя никогда не вызывается.

Любые подсказки о том, как настроить Proguard и что может быть неправильным?

Я попытался сохранить классы своего пакета без успеха:

-keep class com.example.myapp.** { *; } 

Вот ViewModel:

 class SplashViewModelImpl : JapetViewModel(), SplashViewModel { private val isTimeUp = MutableLiveData<Boolean>() init { isTimeUp.value = false Observable.timer(2000L, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe { isTimeUp.postValue(true) } } override fun isTimeUp(): LiveData<Boolean> = isTimeUp } 

И деятельность:

 class SplashActivity : MyBaseActivity() { lateinit var viewModel: SplashViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_splash) viewModel = kodein.with(this).instance() // Working in debug // viewModel.isTimeUp().observe(this, Observer(this::transitionIfTimeUp)) // Working in debug too, tried this way of writing it too viewModel.isTimeUp().observe(this, Observer<Boolean> { t -> transitionIfTimeUp(t) }) // Also tried doing it with an object : Observer... without success either } private fun transitionIfTimeUp(isTimeUp: Boolean?) { if (isTimeUp == null || !isTimeUp) return startActivity<LoginActivity>() finish() } } 

Отредактировано: зависимости

 testCompile "android.arch.persistence.room:testing:1.0.0-alpha3" androidTestCompile "android.arch.persistence.room:testing:1.0.0-alpha3" compile "android.arch.lifecycle:extensions:1.0.0-alpha3" compile "android.arch.lifecycle:reactivestreams:1.0.0-alpha3" kapt "android.arch.lifecycle:compiler:1.0.0-alpha3" compile "android.arch.persistence.room:runtime:1.0.0-alpha3" compile "android.arch.persistence.room:rxjava2:1.0.0-alpha3" kapt "android.arch.persistence.room:compiler:1.0.0-alpha3" 

Вы должны обновить до alpha4 чтобы получить соответствующую конфигурацию ProGuard.

alpha3 возникла проблема в том, что в нее не была включена соответствующая конфигурация ProGuard. В соответствии с примечаниями к выпуску alpha4 это было исправлено.

Я думаю, вы ищете оператора Observable.interval а не Observable.timer

Тот, который вы используете, испускает ТОЛЬКО ОДИН через заданное время. Однако Observable.interval непрерывно испускает каждый заданный интервал.