Android LiveData_LifecycleBoundObserver_LifecycleAdapter无法强制转换为GeneratedAdapter
我在我的android studio项目中使用了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
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
到Java 8targetCompatibility
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"