Search code examples
androidobjecttextviewserializable

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) 

This is my Layout file.

<?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());**

When i click on textview autolink , it give serializable object exception. Please help. Thank you in advance.


Solution

  • Here is the problem:

    java.io.NotSerializableException: com.stonker.activity.Response.ProfileDatum$Address

    You are attempting to serialize an inner class (called Address) which is not serializable. It is probably in a field of some other class.

    The code that needs to be changed has not been included in your question.