JVM环境下无法访问androidx.datastore.preferences.core.Preferences.Key类求助
解决JVM环境下DataStore Preferences依赖缺失问题
问题原因
androidx.datastore.preferences.core.Preferences类属于DataStore Preferences库,默认的Android版依赖无法在纯JVM环境中被识别,必须引入专门的JVM目标依赖包。
解决方案
1. 添加正确的Gradle依赖
在项目的build.gradle.kts(Kotlin DSL)或build.gradle(Groovy)中,替换或添加JVM专属的DataStore Preferences依赖:
Kotlin DSL示例:
dependencies { implementation("androidx.datastore:datastore-preferences-jvm:1.1.0") // 确保引入协程依赖,Flow功能需要它 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") }
Groovy示例:
dependencies { implementation 'androidx.datastore:datastore-preferences-jvm:1.1.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3' }
2. 验证导入语句
确保代码中已正确导入所需类:
import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.Preferences.Key import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map
3. 正确初始化JVM环境下的DataStore
纯JVM环境不能使用Android的Context初始化DataStore,需通过PreferencesDataStoreFactory指定存储文件路径:
import androidx.datastore.preferences.core.Preferences import androidx.datastore.core.PreferencesDataStoreFactory import java.io.File val dataStore = PreferencesDataStoreFactory.create( produceFile = { File(System.getProperty("user.home"), "app_preferences.preferences_pb") } )
完成以上步骤后,重新同步Gradle并编译代码,即可解决Unresolved reference 'Preferences'的错误。
内容的提问来源于stack exchange,提问作者Mohammad Mohammadi
相关产品推荐
相关产品推荐

