0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

وقتی می خواهم با استفاده از putExtra از کلاس Intent یک شئ را در یک Activity برای یک Service ارسال کنم به خطای Parcelable encountered IOException writing serializable object برخورد می کنم دلیل چیست:

    java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.hrm.android.market.RestFragment$InnerCallback)
            at android.os.Parcel.writeSerializable(Parcel.java:1316)
            at android.os.Parcel.writeValue(Parcel.java:1264)
            at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
            at android.os.Bundle.writeToParcel(Bundle.java:1692)
            at android.os.Parcel.writeBundle(Parcel.java:636)
            at android.content.Intent.writeToParcel(Intent.java:7013)
            at android.app.ActivityManagerProxy.startService(ActivityManagerNative.java:2975)
            at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1498)
            at android.app.ContextImpl.startService(ContextImpl.java:1480)
            at android.content.ContextWrapper.startService(ContextWrapper.java:494)
            at com.hrm.android.market.RestFragment.onStart(RestFragment.java:53)
            at android.support.v4.app.Fragment.performStart(Fragment.java:1524)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:957)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
            at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.io.NotSerializableException: android.widget.RelativeLayout
            at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
            at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
            at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
            at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
            at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
            at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
            at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
            at android.os.Parcel.writeSerializable(Parcel.java:1311)
            at android.os.Parcel.writeValue(Parcel.java:1264)
            at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)

 

1 پاسخ

+1 امتیاز
قبل توسط (1.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ
البته بستگی داره به کدتون ولی به صورت کلی باید بگم که putextra تنها آرگومان های از جنس کلاس هایی که اینترفیس های Serializable و یا Parcelable رو پیاده سازی کردن می تونه استفاده کنه.(به علاوه کلیه primite type ها).

مشخصا تو این stack trace داره میگه شما یک شی از جنس کلاس android.widget.RelativeLayout رو داشتیت پاس میداد که این کلاس Serializable نیست.

سوالات مشابه

+1 امتیاز
2 پاسخ 2.0هزار بازدید
...