Why do I get ‘does not implement abstract member’ warning while using kotlinx.android.parcel.Parcelize?

Viewed 2170

I am getting this error while trying to read the bundle from another fragment where I am sending the NewVehicle object.

Error : Class 'NewVehicle' is not abstract and does not implement abstract member public abstract fun describeContents(): Int defined in android.os.Parcelable

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{}
4 Answers

In my case I forgot to add apply plugin: 'kotlin-parcelize' in gradle

I got it resolved by adding this in my build.gradle(app) inside the android block.

androidExtensions {
    experimental = true
}

In my case just apply these plugins in this order:

Make sure that you call kotlin-parcelize first then kotlin-kapt

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

Please remove {} after Parcelable.

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