未解决的参考:Parcelable Kotlin
Posted
技术标签:
【中文标题】未解决的参考:Parcelable Kotlin【英文标题】:Unresolved reference: Parcelable Kotlin 【发布时间】:2021-10-29 11:35:18 【问题描述】:我想使用 safeArgs 将一个对象从一个片段发送到另一个片段,但即使我添加了必要的插件,Parcelable 也无法正常工作。有人能帮帮我吗? 模型类
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class GazModel(
val id: String,
val name: String,
val description: String?,
val price : Double,
val priority: Int,
val weight : Double,
val imageUrl : String?,
var quantity : Int = 0,
var selected: Boolean = false,
val gazType: String, // TRADEX, TOTAL, CAMGAZ
) : Parcelable
build.gradle.kts(项目)
dependencies
//...
val nav_version = "2.3.5"
classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version")
build.gradle.kts(模块)
plugins
//...
id("androidx.navigation.safeargs.kotlin")
id ("kotlin-parcelize")
问题框中出现的问题
Unresolved reference: os
No 'Parcelable' supertype
Unresolved reference: Parcelable
【问题讨论】:
你是 gradle 文件 Kotlin 还是 Groovy? build.gradle.kts 还是 build.gradle? 这可能有助于进一步的过程:***.com/questions/68973416/… @user2836202,他们是 build.gradle.kts @KaruneshPalekar 谢谢你的回答先生,但我总是遇到同样的问题,数据类中的 parcelable 无法识别 【参考方案1】:在 build.gradle(Module) 中,添加一个 id('kotlin-android-extensions') 而不是 id ("kotlin-parcelize"),就可以了!
plugins
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
【讨论】:
我试过了,但它不起作用,我读到 id 'kotlin-android-extensions' 已弃用 还将这一行添加到 build.gradle.kts (Project) classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"【参考方案2】:试试这个
@Parcelize
data class GazModel(
val id: String,
val name: String,
val description: String?,
val price : Double,
val priority: Int,
val weight : Double,
val imageUrl : String?,
var quantity : Int = 0,
var selected: Boolean = false,
val gazType: String, // TRADEX, TOTAL, CAMGAZ
) : Parcelable
我的意思是用 Parcelable 扩展而不是 Parcelable 希望这能解决问题
【讨论】:
以上是关于未解决的参考:Parcelable Kotlin的主要内容,如果未能解决你的问题,请参考以下文章
com.google.android.gms.common.internal.safe parcel.safe parcelable 未找到
无法解决“Parcelable 遇到写入可序列化对象的 IOException”
解决ANRJVMSerializable与Parcelable红黑树一道算法题
Android:使用Parcelable接口在跳转Activity时传递数据以及错误信息 Parcel: unable to marshal value 的解决
Android:使用Parcelable接口在跳转Activity时传递数据以及错误信息 Parcel: unable to marshal value 的解决