Android Kotlin中DataStore报错:Unresolved reference: preferencesKey
解决DataStore中preferencesKey无法解析的问题
问题原因
preferencesKey是DataStore Preferences库提供的扩展函数,出现无法解析的情况通常是缺少对应导入,另外你的代码里还有一处语法错误需要修正。
解决方案
- 添加必要的导入语句
在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
- 修复代码中的语法错误
原代码中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
相关产品推荐
相关产品推荐

