You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Lifecycle依赖至2.6.0-beta01后出现Transformations引用未解析问题

解决Lifecycle 2.6.0-beta01中Transformations无法引用的问题

问题原因

从Lifecycle 2.6.0-beta01版本开始,androidx.lifecycle.Transformations类被标记为废弃,原有的switchMap、map等方法被替换为LiveData的扩展函数,移至androidx.lifecycle.liveData相关包下。

修复步骤

  1. 替换导入语句
    移除原有导入:
import androidx.lifecycle.Transformations

替换为对应扩展函数的导入:

import androidx.lifecycle.switchMap
  1. 修改代码调用逻辑
    将原有的静态方法调用改为LiveData对象的扩展函数形式,同时可以简化返回语句:
    原代码:
var myList: LiveData<List<Bookmark>> = Transformations.switchMap(
    bookMarkType
) { input: Int? ->
    when (input) {
        ARTICLE_BOOKMARK -> return@switchMap repository.articleBookmarks
        WEBSITE_BOOKMARK -> return@switchMap repository.websiteBookmarks
        LINK_BOOKMARK -> return@switchMap repository.linkBookmarks
    }
    repository.websiteBookmarks
}

修改后代码:

var myList: LiveData<List<Bookmark>> = bookMarkType.switchMap { input: Int? ->
    when (input) {
        ARTICLE_BOOKMARK -> repository.articleBookmarks
        WEBSITE_BOOKMARK -> repository.websiteBookmarks
        LINK_BOOKMARK -> repository.linkBookmarks
        else -> repository.websiteBookmarks
    }
}
  1. 确认依赖完整性
    确保build.gradle中已正确引入Lifecycle的KTX依赖(扩展函数需要此依赖支持):
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.0-beta01"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0-beta01"

补充说明

如果需要使用原Transformations中的其他方法(如map),同样替换为对应扩展函数,导入androidx.lifecycle.map即可。

内容的提问来源于stack exchange,提问作者Zain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:10:55