当我点击自动链接 url 时,应用崩溃
When i click on autolink url, app crash
FATAL EXCEPTION: main
Process: com.stonker, PID: 4874
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.stonker.activity.Response.ProfileDatum)
at android.os.Parcel.writeSerializable(Parcel.java:1468)
at android.os.Parcel.writeValue(Parcel.java:1416)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330)
at android.os.Bundle.writeToParcel(Bundle.java:1079)
at android.os.Parcel.writeBundle(Parcel.java:711)
at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:147)
at android.os.Parcel.writeTypedArray(Parcel.java:1254)
at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:403)
at android.os.Parcel.writeParcelable(Parcel.java:1437)
at android.os.Parcel.writeValue(Parcel.java:1343)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330)
at android.os.Bundle.writeToParcel(Bundle.java:1079)
at android.os.Parcel.writeBundle(Parcel.java:711)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3153)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3417)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.io.NotSerializableException: com.stonker.activity.Response.ProfileDatum$Address
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at java.util.ArrayList.writeObject(ArrayList.java:648)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1033)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at android.os.Parcel.writeSerializable(Parcel.java:1463)
at android.os.Parcel.writeValue(Parcel.java:1416)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330)
at android.os.Bundle.writeToParcel(Bundle.java:1079)
at android.os.Parcel.writeBundle(Parcel.java:711)
at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:147)
at android.os.Parcel.writeTypedArray(Parcel.java:1254)
at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:403)
at android.os.Parcel.writeParcelable(Parcel.java:1437)
at android.os.Parcel.writeValue(Parcel.java:1343)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330)
at android.os.Bundle.writeToParcel(Bundle.java:1079)
at android.os.Parcel.writeBundle(Parcel.java:711)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3153)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3417)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这是我的布局文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/fieldTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/profile_fields_color"
android:textSize="@dimen/intro_text_size"
android:singleLine="true"
android:autoLink="web"
android:textColorLink="@color/profile_fields_color"
android:layout_marginLeft="@dimen/dp_5"
android:text="@string/account"/>
</LinearLayout>
public class ProfileDatum implements Serializable{
@SerializedName("web")
@Expose
private ArrayList<Web> web = new ArrayList<>();
public ArrayList<Web> getWeb() {
return web;
}
public class Web implements Serializable{
@SerializedName("url")
@Expose
private String url="";
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
}
**typeTextView.setText(mWebArrayList.get(i).getUrl());**
当我点击 textview autolink 时,它给出了可序列化对象异常。
请帮忙。
提前谢谢你。
问题是:
java.io.NotSerializableException: com.stonker.activity.Response.ProfileDatum$Address
您正在尝试序列化不可序列化的内部 class(称为地址)。它可能在其他一些 class.
的字段中
您的问题中没有包含需要更改的代码。
通过实现序列化解决。
FATAL EXCEPTION: main Process: com.stonker, PID: 4874 java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.stonker.activity.Response.ProfileDatum) at android.os.Parcel.writeSerializable(Parcel.java:1468) at android.os.Parcel.writeValue(Parcel.java:1416) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:147) at android.os.Parcel.writeTypedArray(Parcel.java:1254) at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:403) at android.os.Parcel.writeParcelable(Parcel.java:1437) at android.os.Parcel.writeValue(Parcel.java:1343) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3153) at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3417) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.io.NotSerializableException: com.stonker.activity.Response.ProfileDatum$Address at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) at java.util.ArrayList.writeObject(ArrayList.java:648) at java.lang.reflect.Method.invoke(Native Method) at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1033) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360) at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) at android.os.Parcel.writeSerializable(Parcel.java:1463) at android.os.Parcel.writeValue(Parcel.java:1416) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:147) at android.os.Parcel.writeTypedArray(Parcel.java:1254) at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:403) at android.os.Parcel.writeParcelable(Parcel.java:1437) at android.os.Parcel.writeValue(Parcel.java:1343) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3153) at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3417) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
这是我的布局文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/fieldTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/profile_fields_color"
android:textSize="@dimen/intro_text_size"
android:singleLine="true"
android:autoLink="web"
android:textColorLink="@color/profile_fields_color"
android:layout_marginLeft="@dimen/dp_5"
android:text="@string/account"/>
</LinearLayout>
public class ProfileDatum implements Serializable{
@SerializedName("web")
@Expose
private ArrayList<Web> web = new ArrayList<>();
public ArrayList<Web> getWeb() {
return web;
}
public class Web implements Serializable{
@SerializedName("url")
@Expose
private String url="";
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
}
**typeTextView.setText(mWebArrayList.get(i).getUrl());**
当我点击 textview autolink 时,它给出了可序列化对象异常。 请帮忙。 提前谢谢你。
问题是:
java.io.NotSerializableException: com.stonker.activity.Response.ProfileDatum$Address
您正在尝试序列化不可序列化的内部 class(称为地址)。它可能在其他一些 class.
的字段中您的问题中没有包含需要更改的代码。
通过实现序列化解决。