使用kotlinx.android.parcel.Parcelize时出现未实现抽象成员报错如何解决
报错核心原因
当前的@Parcelize注解没有正常触发编译期的代码生成流程,导致编译器没有自动为NewVehicle类补全Parcelable接口要求的describeContents、writeToParcel等必须实现的抽象方法,最终抛出类未实现接口成员的错误。
实操修复步骤
- 先确认项目根目录下
build.gradle中的插件配置没有遗漏,kotlin-parcelize是独立插件,必须显式声明依赖 - 打开app模块的
build.gradle文件,在顶部插件应用区域添加id 'kotlin-parcelize',注意已经废弃的kotlin-android-extensions插件不再内置parcelize能力,必须单独应用该插件 - 配置完成后同步gradle,先执行
Clean Project清理历史编译缓存,再执行Rebuild Project重新编译:@Parcelize的实现代码是编译阶段动态生成的,旧的编译缓存会直接阻断生成逻辑 - 代码中继承
Parcelable后面的空大括号可以直接删掉,@Parcelize会自动完成所有接口方法的实现,不需要手动留空块 - 排查类内所有属性的类型:如果存在自定义对象类型的属性,需要确认该对象本身也实现了Parcelable,否则@Parcelize会因无法处理对应类型终止生成流程,触发同类报错
注意:@Parcelize生成的代码会默认给
describeContents方法返回0,完全满足Parcelable接口的要求,不需要手动重写该方法。
内容的提问来源于stack exchange,提问作者Sweta Jain
相关产品推荐
相关产品推荐

