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

Android Kotlin中DataStore报错:Unresolved reference: preferencesKey

解决DataStore中preferencesKey无法解析的问题

问题原因

preferencesKey是DataStore Preferences库提供的扩展函数,出现无法解析的情况通常是缺少对应导入,另外你的代码里还有一处语法错误需要修正。

解决方案

  1. 添加必要的导入语句
    在OnboardingPrefs类文件顶部,导入以下包:
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.preferencesKey
import androidx.datastore.preferences.preferencesDataStore
import android.content.Context
  1. 修复代码中的语法错误
    原代码中edit的lambda表达式里,preferences -属于语法错误,需要改为preferences ->。

修正后的完整代码

import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.preferencesKey
import androidx.datastore.preferences.preferencesDataStore
import android.content.Context

class OnboardingPrefs(val context: Context) {

    companion object {
        const val ON_BOARDING_PREFS = "on_boarding_prefs"
        const val ONBOARD_KEY = "onBoard"
    }

    private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(
        name = ON_BOARDING_PREFS
    )

    suspend fun saveOnboarding(save: Boolean) {
        context.dataStore.edit { preferences ->
            preferences[preferencesKey<Boolean>(ONBOARD_KEY)] = save
        }
    }
}

额外说明

你配置的Gradle依赖implementation 'androidx.datastore:datastore-preferences:1.0.0'是有效的,无需调整版本。同步Gradle后重新编译项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:40:53