Sweta Jain
Sweta Jain

Reputation: 4314

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

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

Upvotes: 8

Views: 8303

Answers (4)

Marawan Mamdouh
Marawan Mamdouh

Reputation: 1015

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'    
}

Upvotes: 8

Sergey
Sergey

Reputation: 182

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

Upvotes: 18

Sweta Jain
Sweta Jain

Reputation: 4314

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

androidExtensions {
    experimental = true
}

Upvotes: 3

Daniel.Wang
Daniel.Wang

Reputation: 2496

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

Upvotes: -7

Related Questions