gpt4 book ai didi

android - Kotlin 的 @Parcelize 在 writeToParcel() 上抛出 NPE

转载 作者:太空狗 更新时间:2023-10-29 13:05:42 27 4
gpt4 key购买 nike

我有这组数据类,都在同一个文件中:

@Parcelize data class Response(val RecordView: RecordView):Parcelable

@Parcelize data class RecordView(val Records: List<Records>):Parcelable

@Parcelize data class Gid(val Value: String):Parcelable

@Parcelize data class Features(val Fields: List<Fields>, val FeatureName: String, val Title: String):Parcelable

@Parcelize data class Fields(val Label: String, val Value: String, val FieldName: String, val Features: List<Features>):Parcelable

@Parcelize data class Records(val Gid: Gid, val ImageIds: List<String>, val Fields: List<Fields>, val Features: List<Features>):Parcelable

然后我发送 Response 对象作为下一个 Activity 的 Intent :

val record = intent?.getParcelableExtra<Records>(RECORD)

但是下一个 Activity 会抛出这个:

java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.Collection.size()' on a null object reference
at entities.Features.writeToParcel(Features.kt)
at entities.Records.writeToParcel(Records.kt)
at android.os.Parcel.writeParcelable(Parcel.java:1496)
at android.os.Parcel.writeValue(Parcel.java:1402)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:724)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1408)
at android.os.Bundle.writeToParcel(Bundle.java:1157)
at android.os.Parcel.writeBundle(Parcel.java:764)
at android.content.Intent.writeToParcel(Intent.java:8687)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3082)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1518)
at android.app.Activity.startActivityForResult(Activity.java:4225)

当我使用相同的 @Parcelize 发送一个更基本的类(只是参数中的字符串)时,同样的过程会起作用。

是的,我在我的 gradle 文件上打开了实验。

有什么想法吗?谢谢

最佳答案

我认为你的 API 不应该响应 -> 空对象

因为data intent不能写Null(写到parcel)

当你使用@Parcelize 时

https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FKT-20032

关于android - Kotlin 的 @Parcelize 在 writeToParcel() 上抛出 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48350776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com