Android LiveData_LifecycleBoundObserver_LifecycleAdapter无法强制转换为GeneratedAdapter

Android LiveData_LifecycleBoundObserver_LifecycleAdapter无法强制转换为GeneratedAdapter,android,android-gradle-plugin,kotlin-android-extensions,android-architecture-components,android-livedata,Android,Android Gradle Plugin,Kotlin Android Extensions,Android Architecture Components,Android Livedata,我在我的android studio项目中使用了kotlin,我试图在MutableLiveData中添加一个观测者,该观测者包含一个ArrayList,但我得到了下面的例外 java.lang.ClassCastException: android.arch.lifecycle.LiveData_LifecycleBoundObserver_LifecycleAdapter cannot be cast to android.arch.lifecycle.GeneratedAdapt

我在我的android studio项目中使用了
kotlin
,我试图在
MutableLiveData
中添加一个观测者,该观测者包含一个
ArrayList
,但我得到了下面的例外

java.lang.ClassCastException: android.arch.lifecycle.LiveData_LifecycleBoundObserver_LifecycleAdapter cannot be cast to android.arch.lifecycle.GeneratedAdapt
    at android.arch.lifecycle.Lifecycling.createGeneratedAdapter(Lifecycling.java:79)
    at android.arch.lifecycle.Lifecycling.getCallback(Lifecycling.java:62)
    at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.<init>(LifecycleRegistry.java:346)
    at android.arch.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:162)
    at android.arch.lifecycle.LiveData.observe(LiveData.java:199)
应用程序的构建。gradle

buildscript {
    ext.kotlin_version = '1.2.10'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0-alpha05'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
android {      
    dataBinding {
        enabled true;
    }
}
dependencies {
    implementation "android.arch.lifecycle:runtime:1.0.3"
    implementation "android.arch.lifecycle:extensions:1.0.0-alpha9-1"
    kapt "android.arch.lifecycle:compiler:1.0.0-alpha9-1"
//...
}
我的活动

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    //...
    val liveData = MutableLiveData<ArrayList<Media>>()
    //...
    liveData.observe(this, object : Observer<ArrayList<Media>>{
            override fun onChanged(t: ArrayList<Media>?) {
                if(t?.size!! > 0){
                    binding.totalTv.text =t.size.toString()
                    binding.totalTv.visibility = View.VISIBLE
                }
            }
    })
    //...
}
override-fun-onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
//...
val liveData=MutableLiveData()
//...
观察(此,对象:Observer{
更改后覆盖乐趣(t:ArrayList?){
如果(t?.size!!>0){
binding.totalTv.text=t.size.toString()
binding.totalTv.visibility=View.VISIBLE
}
}
})
//...
}

如何解决此错误?

我已经用以下方法测试了您的代码:

  • 数据绑定{
    启用真
    }
  • sourceCompatibility
    targetCompatibility
    到Java 8
  • gradle 4.2.1
  • android插件3.0.1
  • kotlin插件1.2.10
依赖项:

  • appcompat-v7 27.0.2
  • android.arch.lifecycle:runtime:1.0.3
  • android.arch.lifecycle:扩展:1.0.0
  • android.arch.lifecycle:编译器:1.0.0

一切都很好…

我更改了android.arch.lifecycle:extensions

然后同步了我的项目,它成功了。感谢@MatPag提供的洞察力

 implementation "android.arch.lifecycle:extensions:1.0.0-alpha9-1"
implementation "android.arch.lifecycle:extensions:1.0.0"