Android Studio运行报错:lateinit属性typeArgumentMapping未初始化(代码无lateinit变量)
解决Kotlin编译分析时的lateinit属性未初始化错误
运行Android Studio时出现如下错误:
kotlin.util.FileAnalysisException: 分析..../ChartViewModel.kt:29:28时:kotlin.UninitializedPropertyAccessException: lateinit属性typeArgumentMapping尚未初始化对应的
ChartViewModel.kt代码如下:class ChartViewModel(firestoreLogger: FirestoreLogger) : BasicTerminalViewModel( firestoreLogger) { private val moshi: Moshi = Moshi.Builder().addLast(KotlinJsonAdapterFactory()).build() private val jsonAdapter: JsonAdapter<PinData> = moshi.adapter(PinData::class.java) private val chartState: MutableLiveData<String> = MutableLiveData() private val data: MutableLiveData<HashMap<String, PinData>> = MutableLiveData() private val pinDataMap = HashMap<String, PinData>() val dataSetMap = HashMap<String, Int>() // this is the line ChartViewModel.kt:29:28 val chartColorKeyMap = ArrayMap<String, Int>() val pinEnableMap = ArrayMap<Int, Boolean>() private val resolution = 1 private var resolutionCounter = 0 private var nextColorIndex = 0 var codeUploaded = false //all variables are inclueded above }代码中并未定义任何
lateinit变量,请问该如何解决此问题?
可行的解决步骤
- 清理重建项目:执行
Build > Clean Project,再执行Build > Rebuild Project,清除旧编译缓存后重新构建。 - 更新Kotlin插件与版本:打开
File > Settings > Languages & Frameworks > Kotlin,更新插件到最新稳定版,同时确保项目根目录build.gradle中的Kotlin版本和插件版本匹配。 - 检查父类初始化逻辑:错误中的
typeArgumentMapping大概率来自父类BasicTerminalViewModel,确认父类是否存在未正确初始化的lateinit属性,或者父类的构造/初始化逻辑是否有异常。 - 关闭增量编译:在项目根目录的
gradle.properties中添加kotlin.incremental=false,禁用增量编译后重新构建,验证是否为增量编译导致的问题。 - 手动删除缓存目录:删除项目根目录下的
.gradle文件夹和模块的build文件夹,然后执行File > Sync Project with Gradle Files重新同步项目。
内容的提问来源于stack exchange,提问作者Randunu.KSW
相关产品推荐
相关产品推荐

