Kotlin, proguard, Android Architecture Components

Tengo un model de vista con una variable de datos en vivo allí.

Mi actividad lo observa para actualizar la interfaz de usuario.

En la debugging, todo está funcionando bien. Cuando activo proguard, ya no se observan los cambios en livedata.

He verificado que los datos en vivo estén actualizados correctamente. Sin embargo, la callback del observador nunca se llama.

¿Algún consejo sobre cómo configurar Proguard y qué podría estar mal?

Traté de mantener las classs de mi package sin éxito:

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

Aquí está el 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 } 

Y la actividad:

 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() } } 

Editado: dependencies

 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" 

Debe actualizar a alpha4 para get la configuration de ProGuard adecuada.

alpha3 tenía un problema porque no incluía la configuration ProGuard adecuada. De acuerdo con las notas de la versión alpha4 , esto ha sido corregido.

Supongo que estás buscando el operador Observable.interval y no Observable.timer

El que está utilizando emite SOLO UNA VEZ después del time especificado. Sin embargo, Intervalo Observable.interval emite continuamente cada intervalo especificado.

  • Jackson no deserializa las classs de datos de Kotlin
  • ProGuard hace que Gson devuelva LinkedTreeMap en lugar de mi tipo
  • Android se cuelga después de intentar crear una versión de lanzamiento
  • ¿Cómo puedo ofuscar mi sdk codificado con kotlin (y deshacerme de Metadata)
  • Android Apk se cuelga después de la construcción firmada - Proguard ya está apagado
  • JsonProperty no funciona mientras la minificación está habilitada