2010-06-28 11 views
5

डाल दिया गया है Sererializable टूटा हुआ है?एंड्रॉइड में putSerializable का उपयोग

जब मैं PutSerializable के साथ शून्य पास करता हूं तो FillSummary.class जैसा शुरू होना चाहिए। यदि मैं एंड्रॉइड फोर्स बंद होने की तुलना में टेस्टसेरियल ऑब्जेक्ट पास करता हूं।

एक बंडल के माध्यम से एक कस्टम ऑब्जेक्ट स्थानांतरित करने के लिए मुझे क्या करना है?

public class TestSerial implements Serializable{ 
    private static final long serialVersionUID = 2310640779687082782L; 
    public int i; 
    public TestSerial(){ 
     i=1; 
    } 
} 

private void renderSummary(){ 

    Intent intent = new Intent(FillForm.this, FillSummary.class); 
    Bundle extras = new Bundle(); 

    extras.putSerializable("test serial", new TestSerial()); 
    intent.putExtras(extras); 

    startActivityForResult(intent, Forms.DISPLAY_SUMMARY); 
} 

त्रुटि:

06-28 13:56:02.436: ERROR/AndroidRuntime(1136): Uncaught handler: thread main exiting due to uncaught exception 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { action=Return user choice (has extras) }} to activity {com.Questionaire/com.Questionaire.FillForm}: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.Questionaire.FillForm$TestSerial) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3005) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3047) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread.access$2300(ActivityThread.java:112) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1721) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Looper.loop(Looper.java:123) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread.main(ActivityThread.java:3948) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at dalvik.system.NativeStart.main(Native Method) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136): Caused by: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.Questionaire.FillForm$TestSerial) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Parcel.writeSerializable(Parcel.java:1147) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Parcel.writeValue(Parcel.java:1101) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Parcel.writeMapInternal(Parcel.java:469) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Parcel.writeBundle(Parcel.java:491) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.content.Intent.writeToParcel(Intent.java:4471) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1036) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1449) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.Activity.startActivityForResult(Activity.java:2656) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at com.Questionaire.FillForm.renderSummary(FillForm.java:206) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at com.Questionaire.FillForm.renderNext(FillForm.java:178) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at com.Questionaire.FillForm.onActivityResult(FillForm.java:86) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.Activity.dispatchActivityResult(Activity.java:3595) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3001) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  ... 11 more 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136): Caused by: java.io.NotSerializableException: com.Questionaire.FillForm 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1753) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:2073) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1900) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1863) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1354) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:421) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1456) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1789) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:2073) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1900) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1863) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  at android.os.Parcel.writeSerializable(Parcel.java:1142) 
06-28 13:56:02.784: ERROR/AndroidRuntime(1136):  ... 23 more 
+0

क्या आप त्रुटि लॉग पोस्ट कर सकते हैं? –

उत्तर

11

TestSerial या तो स्थिर है या एक अलग फाइल इतना है कि यह enclosing गैर serializable प्रकार खींच नहीं की जाएगी में घोषित किया जाना चाहिए।

+3

क्या आप "एक अलग फाइल में घोषित" समझा सकते हैं? –

संबंधित मुद्दे