android - LiveData_LifecycleBoundObserver_LifecycleAdapter 无法转换为 GeneratedAdapter

标签 android android-gradle-plugin kotlin-android-extensions android-architecture-components android-livedata

我在我的 android studio 项目中使用 kotlin 并且我正在尝试将观察者添加到包含 ArrayListMutableLiveData 但是我在下面遇到异常。

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)

项目级build.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"
    }
}

应用的 build.gradle

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"
//...
}

我的 Activity

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
                }
            }
    })
    //...
}

如何解决错误?

最佳答案

我更改了 android.arch.lifecycle:extensions

来自

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

implementation "android.arch.lifecycle:extensions:1.0.0"

然后同步我的项目就成功了。感谢@MatPag 的见解

关于android - LiveData_LifecycleBoundObserver_LifecycleAdapter 无法转换为 GeneratedAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026126/

相关文章:

java - 在 Android Studio 1.5.1 中插入 tess4j.jar 后,Gradle 构建失败

android - 无法将库添加到我的应用程序中?

android - 如何使用 kotlin 在 android 中初始化小部件

android - 什么是安卓窗口?

android - 我如何从 Android 访问/data/user/0/文件夹?

Android H.264 BaseProfile 级别支持

Android 如何拥有我的应用程序的两个不同版本

android - react native 错误:重复的资源, Assets 出现在某些屏幕中,而不出现在其他人的android版本APK中

android - 找不到 gradle signingconfigs

java - Kotlin 数据类中的私有(private)成员变量