错误:此类实现 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.gradleapp 模块中的插件

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-extensionskotlin-parcelize)并且存在冲突。不过,这只是猜测。 升级gradletriplet.play 版本后解决Lint 错误。 【参考方案1】:

升级后

com.android.tools.build:gradle 版本4.1.07.0.0

com.github.triplet.play 版本3.0.03.6.0

lint 问题已解决。

【讨论】:

以上是关于错误:此类实现 Parcelable 但未在 AndroidStudio 中提供 CREATOR 字段 [ParcelCreator]的主要内容,如果未能解决你的问题,请参考以下文章

使用邮递员返回错误请求,但未在单元测试 Spring Boot 中返回

如何为自定义对象的 ArrayList 添加 parcelable 实现?

Eclipse项目文件夹显示错误但未在文件夹内的任何文件中显示错误

连接到 slack api 中的 chat.postMessage 的 CORS 策略错误,标头已设置但未在 React 和 Redux 中设置 [重复]

在 mysql 中创建数据库但未在 phpmyadmin 中显示

Detox 成功构建但未在 Android 模拟器上安装应用程序