IllegalStateException: parcel.readString () не должно быть null

Я Parcelable объект Parcelable в Intent в следующую Activity :

 val intent = Intent(mContext, ShowTestActivity::class.java) intent.putExtra("test", test) Log.d("myLog", "${intent.getParcelableExtra<Test>("test")}") // No problem mContext.startActivity(intent) 

И получить этот объект в следующем Activity :

 if (!intent.hasExtra("test")) throw Exception("Intent doesn't has 'test' extra") val test: Test = intent.getParcelableExtra("test") 

И вот бросают Исключение:

 public open class QBase(): Parcelable { ... protected constructor(parcel: Parcel?) : this() { parcel?.let { question = parcel.readString() // parcel.readString() must not be null helpText = parcel.readString() qValue = parcel.readDouble() qType = QType.valueOf(parcel.readString()) } } override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeString(question) parcel.writeString(helpText) parcel.writeDouble(qValue) parcel.writeString(qType.name) } ... } 

И в тесте:

 public class Test(): Parcelable { ... public var questions: ArrayList<QBase> = ArrayList() constructor(parcel: Parcel?): this() { parcel?.let { ... parcel.readTypedList(questions, QBase.CREATOR) } } override fun writeToParcel(p: Parcel?, p1: Int) { p?.let { ... it.writeTypedList(questions) } } ... } 

Это исключение:

Вызывается: java.lang.IllegalStateException: parcel.readString () не должен иметь значение null в com.vadim.hasdfa.justlearn.Model.Questions.utils.QBase. (QBase.kt: 22) at com.vadim.hasdfa.justlearn .Model.Questions.utils.QBase $ CREATOR.createFromParcel (QBase.kt: 70) в com.vadim.hasdfa.justlearn.Model.Questions.utils.QBase $ CREATOR.createFromParcel (QBase.kt: 68) на android.os .Parcel.readTypedList (Parcel.java:2432) на com.vadim.hasdfa.justlearn.Model.Test. (Test.kt: 28) at com.vadim.hasdfa.justlearn.Model.Test $ CREATOR.createFromParcel (Test. kt: 47) на com.vadim.hasdfa.justlearn.Model.Test $ CREATOR.createFromParcel (Test.kt: 45) на android.os.Parcel.readParcelable (Parcel.java:2787) на android.os.Parcel.readValue (Parcel.java:2681) на android.os.Parcel.readArrayMapInternal (Parcel.java:3048) на android.os.BaseBundle.unparcel (BaseBundle.java:257) на android.os.BaseBundle.containsKey (BaseBundle.java: 435) в android.content.Intent.hasExtra (Intent.java:6859) в com.vadim.hasdfa.justlearn.Controller.Activity.BrowseTest.Sh owTestActivity.onCreate (ShowTestActivity.kt: 28) в android.app.Activity.performCreate (Activity.java:6980) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1213) в android.app.ActivityThread.performLaunchActivity (ActivityThread .java: 2770) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2892) в android.app.ActivityThread.-wrap11 (Неизвестный источник: 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java: 1593) на android.os.Handler.dispatchMessage (Handler.java:105) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6540) в java. lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767 )

Основываясь на ответе. В настоящее время единственным обходным решением является включение члена класса, который реализует аргументацию, чтобы быть нулевым.