使用SafeArgs传对象时提示Unresolved reference: Parcelable如何解决?
排查解决步骤
- 升级Navigation版本
你当前使用的2.3.5版本Navigation过于老旧,与新版Kotlin、kotlin-parcelize插件兼容性差,将项目级build.gradle.kts中的nav_version改为至少2.5.3及以上稳定版即可。 - 补全模块级插件依赖
kotlin-parcelize插件必须配套org.jetbrains.kotlin.android插件使用,检查你的模块级build.gradle.kts的plugins块,确保已经先添加了Android插件(com.android.application或com.android.library)和Kotlin Android插件id("org.jetbrains.kotlin.android"),再添加kotlin-parcelize和SafeArgs插件,顺序不能错。 - 确认模型类存放位置
android.os.Parcelable是Android SDK专属类,如果你把GazModel放在了纯JVM/Kotlin模块中,必然会出现找不到os包、Parcelable类的报错,必须将该类放在Android应用/库模块的代码目录下。 - 清理缓存重建项目
完成上述配置修改后,依次执行Android Studio的Clean Project、Rebuild Project操作,排除Gradle缓存导致的类识别异常。 - 可选优化:移除模型类多余语法
可以将GazModel声明末尾的空大括号去掉,直接写data class GazModel(...) : Parcelable即可,避免不必要的语法歧义。
内容的提问来源于stack exchange,提问作者Lobe Loic
相关产品推荐
相关产品推荐

