错误:此类实现 Parcelable 但未在 AndroidStudio 中提供 CREATOR 字段 [ParcelCreator]
Posted
技术标签:
【中文标题】错误:此类实现 Parcelable 但未在 AndroidStudio 中提供 CREATOR 字段 [ParcelCreator]【英文标题】:Error: This class implements Parcelable but does not provide a CREATOR field [ParcelCreator] in AndroidStudio 【发布时间】:2021-10-28 17:16:26 【问题描述】:我收到 lint 错误 Error: This class implements Parcelable but does not provide a CREATOR field [ParcelCreator]
我的数据类:
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class PhoneNumber(val countryCode:String, val number:String) : Parcelable
val completeNumber:String get() = countryCode + number
Kotlin 版本:
ext.kotlin_version = '1.5.21'
build.gradle
中 app
模块中的插件
plugins
id 'com.android.application'
id 'com.github.triplet.play' version '3.0.0'
id 'kotlin-android'
id 'kotlin-parcelize'
id 'kotlin-kapt'
id 'com.apollographql.apollo'
id 'com.google.firebase.crashlytics'
id 'com.google.gms.google-services'
但在 kotlin 1.3.61
中,kotlin-android-extensions
不会出现 lint 错误
迁移到 kotlin-parcelize
后,我收到此 lint 错误。
请帮我解决这个 lint 错误
【问题讨论】:
我把你的课程放到了一个废弃的 Android Studio 北极狐项目中,我没有收到这个错误。您可以尝试创建自己的废料项目并查看是否出现错误。 @CommonsWare 创建了一个废品项目,但没有收到此错误。有什么建议为什么会出现这个错误?是迁移问题吗? "有什么建议为什么会出现这个错误?" ——我最好的猜测是你以某种方式获得了两个插件(kotlin-android-extensions
和kotlin-parcelize
)并且存在冲突。不过,这只是猜测。
升级gradle
和triplet.play
版本后解决Lint 错误。
【参考方案1】:
升级后
com.android.tools.build:gradle
版本4.1.0
到7.0.0
和
com.github.triplet.play
版本3.0.0
到3.6.0
lint 问题已解决。
【讨论】:
以上是关于错误:此类实现 Parcelable 但未在 AndroidStudio 中提供 CREATOR 字段 [ParcelCreator]的主要内容,如果未能解决你的问题,请参考以下文章
使用邮递员返回错误请求,但未在单元测试 Spring Boot 中返回
如何为自定义对象的 ArrayList 添加 parcelable 实现?
Eclipse项目文件夹显示错误但未在文件夹内的任何文件中显示错误
连接到 slack api 中的 chat.postMessage 的 CORS 策略错误,标头已设置但未在 React 和 Redux 中设置 [重复]