Android LiveData:MutableData从不处于活动状态

我有以下ViewModel

 class SignInViewModel @Inject constructor(val api: BillingApi) : ViewModel() { val googleApiClient: MutableLiveData<GoogleApiClient> = MutableLiveData() } 

在我的Activity.onCreate(onSavedInstanceState: Bundle?)我有:

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... signInViewModel = ViewModelProviders.of(this) .get(SignInViewModel::class.java) signInViewModel.googleApiClient.observe(this, Observer<GoogleApiClient?> { ... // here never gets trigged } 

后来我的代码我有signInViewModel.googleApiClient.value = it 。 在这一点上(点击按钮后,所以我处于恢复状态),我期待的LiveData触发我的观察员,但事实并非如此

在调试时,我注意到我的MutableLiveData从来没有active状态。

我究竟做错了什么? 请,我知道我在示例中使用的是一个GoogleApiClient实例,它应该使用GoogleApiClientGoogleApiClient进行初始化,但这不是问题。 我想动态地设置它,让我的观察者被触发。

编辑 :添加调用setValue的代码

 signInViewModel.someMethod(this) .observeOn(AndroidSchedulers.mainThread()) .subscribe(Consumer { // This gets called but the observe callback does **not** signInViewModel.googleApiClient.value = it }, errorCallback) 

原来minifyEnabled是真的。 我还没有看到任何有关架构组件的proguard规则。

发现这个问题尚未解决,但有需要的配置,使其通过:

 -keepclassmembers class * implements android.arch.lifecycle.LifecycleObserver { <init>(...); } -keepclassmembers class * extends android.arch.lifecycle.ViewModel { <init>(...); } -keepclassmembers class android.arch.lifecycle.Lifecycle$State { *; } -keepclassmembers class android.arch.lifecycle.Lifecycle$Event { *; } -keepclassmembers class * { @android.arch.lifecycle.OnLifecycleEvent *; } -keep class * implements android.arch.lifecycle.LifecycleObserver { <init>(...); }