Note that there are some explanatory texts on larger screens.

plurals
  1. PORestoring an ArrayAdapter through deserialization?
    primarykey
    data
    text
    <p>I'm trying to serialize and deserialize a custom ArrayAdapter that implements Serializable. Serialization seems to work, but deserialization gives me an IllegalAccessException on the line marked "**" below:</p> <p>Serialization:</p> <pre><code>FileOutputStream fos = this.openFileOutput ( fileName, Context.MODE_PRIVATE ); ObjectOutputStream os = new ObjectOutputStream ( fos ); os.writeObject ( adapter ); os.close (); </code></pre> <p>Deserialization:</p> <pre><code>protected SerializableArrayAdapter createAdapter () { String fileName = "testFile"; try { FileInputStream fis = this.openFileInput ( fileName ); ObjectInputStream ois = new ObjectInputStream ( fis ); **SerializableArrayAdapter adapter = ( SerializableArrayAdapter ) ois.readObject ();** ois.close (); return adapter; } catch ( Exception ex ) { ex.printStackTrace (); } adapter = new SerializableArrayAdapter ( this, android.R.layout.simple_list_item_1 ); return adapter; } </code></pre> <p>What am I doing wrong? (I'm new both to java and android)</p> <p>Edit: logcat added. Eh, perhaps there's a way to make it less.... messy?</p> <pre><code>10-31 16:13:49.960: W/System.err(28966): java.io.InvalidClassException: android.widget.ArrayAdapter; IllegalAccessException 10-31 16:13:49.960: W/System.err(28966): at java.io.ObjectStreamClass.resolveConstructorClass(ObjectStreamClass.java:692) 10-31 16:13:49.960: W/System.err(28966): at java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:653) 10-31 16:13:49.960: W/System.err(28966): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1819) 10-31 16:13:49.960: W/System.err(28966): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 10-31 16:13:49.960: W/System.err(28966): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2006) 10-31 16:13:49.968: W/System.err(28966): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1963) 10-31 16:13:49.968: W/System.err(28966): at com.example.tm2.MainActivity.createAdapter(MainActivity.java:41) 10-31 16:13:49.968: W/System.err(28966): at com.example.tm2.MainActivity.onCreate(MainActivity.java:29) 10-31 16:13:49.968: W/System.err(28966): at android.app.Activity.performCreate(Activity.java:5133) 10-31 16:13:49.968: W/System.err(28966): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 10-31 16:13:49.968: W/System.err(28966): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 10-31 16:13:49.968: W/System.err(28966): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 10-31 16:13:49.968: W/System.err(28966): at android.app.ActivityThread.access$600(ActivityThread.java:141) 10-31 16:13:49.968: W/System.err(28966): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 10-31 16:13:49.968: W/System.err(28966): at android.os.Handler.dispatchMessage(Handler.java:99) 10-31 16:13:49.968: W/System.err(28966): at android.os.Looper.loop(Looper.java:137) 10-31 16:13:49.968: W/System.err(28966): at android.app.ActivityThread.main(ActivityThread.java:5103) 10-31 16:13:49.968: W/System.err(28966): at java.lang.reflect.Method.invokeNative(Native Method) 10-31 16:13:49.968: W/System.err(28966): at java.lang.reflect.Method.invoke(Method.java:525) 10-31 16:13:49.968: W/System.err(28966): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 10-31 16:13:49.968: W/System.err(28966): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-31 16:13:49.968: W/System.err(28966): at dalvik.system.NativeStart.main(Native Method) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload