Android java.lang.RuntimeException:Parcelable在编写可序列化对象时遇到IOException(name=com.xxx.xxx.xxx.model.CategoryModel)

Android java.lang.RuntimeException:Parcelable在编写可序列化对象时遇到IOException(name=com.xxx.xxx.xxx.model.CategoryModel),android,notserializableexception,Android,Notserializableexception,我正在将一个模型列表从一个片段a传递到另一个片段B,当我按下片段B上的最近应用程序按钮时,它崩溃了 data class CategoryModel( @SerializedName("id") val id : Int, @SerializedName("name") val categoryName : String, var isSelected : Boolean, @SerializedName("image") val imageUrl : String, var isOp

我正在将一个模型列表从一个片段a传递到另一个片段B,当我按下片段B上的最近应用程序按钮时,它崩溃了

data class CategoryModel(

@SerializedName("id")
val id : Int,

@SerializedName("name")
val categoryName : String,

var isSelected : Boolean,

@SerializedName("image")
val imageUrl : String,

var isOpened: Boolean = false,

@SerializedName("service")
val services : MutableList<ServiceModel>,

var selectedServiceListAdapter: SelectedSeerviceListRecyclerAdapter? = null) : Serializable
findNavControllerthis.navigateR.id.action_categoryFragment_to_serviceListFragment,参数

在片段B中:

categoryList = arguments?.get("list") as MutableList<CategoryModel>

您需要像下面的示例一样对数据类进行打包

Parcelize
data class WebViewTemplateParam(
    var type:FeedsType?,
    var placeholder: String = "",
    var message: String = "",
    var title: String? = "",
    var image: Int?= null):Parcelable

ServiceModel是否可序列化?请提供完整的堆栈跟踪。@MikeM。请检查跟踪和ServiceModel模型是否可序列化这是我的服务模型:@SerializedNameid val id:Int,@SerializedNameVal serviceName:String,变量isSelected:Boolean,变量isCustomized:Boolean=false,变量TimeTake:String,变量price:String=0,@SerializedNamemin_price val minPrice:String,@SerializedNamemax_price val maxPrice:String,var serviceNameValueList:MutableList=arrayListOf,var serviceNameAndValueRecyclerAdapter:serviceNameAndValueRecyclerAdapter?:Serializable它正在尝试序列化ProviderDetailsActivity。我不太清楚Kotlin是如何处理序列化的,但看起来您有两个实现Serializable的RecyclerView.Adapters,这些适配器可能有一个活动的字段,您无法序列化该活动。我不知道为什么这些适配器实现Serializable,但您不应该尝试序列化它们;只是数据。
categoryList = arguments?.get("list") as MutableList<CategoryModel>
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.xxx.xxx.xxx.model.CategoryModel)
    at android.os.Parcel.writeSerializable(Parcel.java:1394)
    at android.os.Bundle.writeToParcel(Bundle.java:1034)
    at android.os.Parcel.writeBundle(Parcel.java:669)
    at androidx.fragment.app.FragmentState.writeToParcel(FragmentState.java:167)
    at android.os.Parcel.writeTypedList(Parcel.java:1112)
    at androidx.fragment.app.FragmentManagerState.writeToParcel(FragmentManagerState.java:51)
 androidx.fragment.app.FragmentManagerState.writeToParcel(FragmentManagerState.java:51)

    at android.os.Parcel.writeBundle(Parcel.java:669)
    at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3270)

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)


Caused by: java.io.NotSerializableException: com.xxxx.xxxx.xxxx.view.activities.ProviderDetailsActivity
    at 

   java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
    at android.os.Parcel.writeSerializable(Parcel.java:1389)
    at android.os.Parcel.writeValue(Parcel.java:1341) 

    at androidx.fragment.app.FragmentState.writeToParcel(FragmentState.java:169) 
    at android.os.Parcel.writeTypedList(Parcel.java:1112) 
    at androidx.fragment.app.FragmentManagerState.writeToParcel(FragmentManagerState.java:51) 
    at android.os.Parcel.writeParcelable(Parcel.java:1363) 
    at android.os.Parcel.writeValue(Parcel.java:1268) 
    at android.os.Parcel.writeArrayMapInternal(Parcel.java:644) 
    at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313) 
    at android.os.Bundle.writeToParcel(Bundle.java:1034) 
    at android.os.Parcel.writeBundle(Parcel.java:669) 
    at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3270) 
    at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4385) 
    at android.os.Handler.handleCallback(Handler.java:739) 

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
Parcelize
data class WebViewTemplateParam(
    var type:FeedsType?,
    var placeholder: String = "",
    var message: String = "",
    var title: String? = "",
    var image: Int?= null):Parcelable