为什么我在使用kotlinx.android.parcel.Parcelize时收到“doesn't implement abstract member”警告?

r1wp621o  于 2023-06-24  发布在  Kotlin
关注(0)|答案(4)|浏览(238)

我在尝试从另一个片段中读取包时得到了这个错误,我正在发送NewVehicle对象。
错误:Class 'NewVehicle'不是抽象的,并且没有实现抽象成员public abstract fun describeContents():在android.os中定义的Int。

NewVehicle.kt

import android.os.Parcelable
import com.google.gson.annotations.SerializedName
import kotlinx.android.parcel.Parcelize

@Parcelize
data class NewVehicle(
    @SerializedName("av_se")
    val avSe: String,
    .....
    @SerializedName("vh_ob")
    val vhOb: String,
    @SerializedName("zo_in")
    val zoIn: String
):Parcelable{}
ltqd579y

ltqd579y1#

在我的例子中,我忘记在Gradle中添加apply plugin: 'kotlin-parcelize'

7gcisfzg

7gcisfzg2#

我通过在android块内的build.gradle(app)中添加这个来解决这个问题。

androidExtensions {
    experimental = true
}
vcudknz3

vcudknz33#

在我的例子中,只需按以下顺序应用这些插件:
请确保先调用kotlin-parcelize**然后调用kotlin-kapt

plugins {
    id 'kotlin-parcelize'
    id 'kotlin-kapt'    
}
8aqjt8rx

8aqjt8rx4#

请删除可打包后的{}。

@Parcelize
data class NewVehicle(
    @SerializedName("av_se")
    val avSe: String,
    .....
    @SerializedName("vh_ob")
    val vhOb: String,
    @SerializedName("zo_in")
   val zoIn: String
): Parcelable

相关问题