Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.RuntimeException:Parcelable在Android中写入可序列化对象时遇到IOException传递ArrayList对象_Java_Android_Serialization_Arraylist_Mpandroidchart - Fatal编程技术网

java.lang.RuntimeException:Parcelable在Android中写入可序列化对象时遇到IOException传递ArrayList对象

java.lang.RuntimeException:Parcelable在Android中写入可序列化对象时遇到IOException传递ArrayList对象,java,android,serialization,arraylist,mpandroidchart,Java,Android,Serialization,Arraylist,Mpandroidchart,我想使用实现Serializable的数据包装器将我的ArrayList对象传递给另一个活动 我遵循这里提供的答案:。 我正在从MPAndroidChart库PieChart的OnChartGestureListener()启动另一个活动。这就是我传递ArrayList对象的方式threadList: mChart.setOnChartGestureListener(new OnChartGestureListener() { @Override public void onChartSingl

我想使用实现
Serializable
的数据包装器将我的ArrayList对象传递给另一个活动
我遵循这里提供的答案:。
我正在从
MPAndroidChart
PieChart
OnChartGestureListener()
启动另一个活动。这就是我传递ArrayList对象的方式
threadList

mChart.setOnChartGestureListener(new OnChartGestureListener() {
@Override
public void onChartSingleTapped(MotionEvent me) {
    Intent intent = new Intent(MainActivity.this, TextersSmsActivity.class);
    intent.putExtra("threadList", new DataWrapper(threadList));
    MainActivity.this.startActivity(intent);
}
//.....
}
我实现了DataWrapper类,如下所示:

public class DataWrapper implements Serializable {
private static final long serialVersionUID = 100L;
private ArrayList<OneThread> threadList;

   public DataWrapper(ArrayList<OneThread> threadList) {
      this.threadList = threadList;
   }

   public ArrayList<OneThread> getThreadList() {
      return threadList;
   }
}

我按照上面链接中的答案(传递数组列表对象),但是得到了错误、导致错误的原因以及如何删除它?

您的
OneThread
类也应该实现
可序列化
。所有子类和内部子类都必须实现
Serializable

My
OneThread
类有另一个字段
ArrayList
making
Cls2
也可序列化解决了这个问题。@mohammed,感谢您的注释,使字段类也可序列化;)我的类已经实现了可序列化。但是得到同样的问题是正确的!所有自定义的内部类也必须是可序列化的。非常感谢你为我节省了很多时间:)+10
11-29 21:12:09.919: E/MessageQueue-JNI(21550): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.myproj.DataWrapper)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.os.Parcel.writeSerializable(Parcel.java:1316)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.os.Parcel.writeValue(Parcel.java:1264)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.os.Bundle.writeToParcel(Bundle.java:1692)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.os.Parcel.writeBundle(Parcel.java:636)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.content.Intent.writeToParcel(Intent.java:7013)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2076)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1419)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Activity.startActivityForResult(Activity.java:3424)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Activity.startActivityForResult(Activity.java:3385)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Activity.startActivity(Activity.java:3627)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Activity.startActivity(Activity.java:3595)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.myproj.MainActivity$11.onChartSingleTapped(MainActivity.java:967)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.github.mikephil.charting.listener.PieRadarChartTouchListener.onSingleTapUp(PieRadarChartTouchListener.java:89)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.GestureDetector.onTouchEvent(GestureDetector.java:595)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.github.mikephil.charting.listener.PieRadarChartTouchListener.onTouch(PieRadarChartTouchListener.java:40)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.github.mikephil.charting.charts.PieRadarChartBase.onTouchEvent(PieRadarChartBase.java:56)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.View.dispatchTouchEvent(View.java:7706)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.dispatchTouchEvent(ActionBarActivityDelegateICS.java:268)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.View.dispatchPointerEvent(View.java:7886)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3947)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5532)
11-29 21:12:09.919: E/MessageQueue-JNI(21550):  at android.view.ViewRootImpl.doP