La instalación deClassNotFoundException en clase serializable durante la actividad comenzará
tengo una actividad que sólo se anula onCreate(), onResume(), y onSaveInstanceState(). En onSaveInstanceState(), pongo en un objeto serializable:
@Override
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putSerializable("obj", myObj); // myObj is of class MyClass state.putLong("long", longVar);
}
MiClase fue originalmente una clase interna dentro de la clase de actividad, pero para la depuración, que incluso se trasladó a un archivo separado:
public class MyClass implements Serializable {
private static final long serialVersionUID = 0x98ED2F00;
....
}
los Pasos:
- iniciar el programa de la forma habitual, funciona muy bien.
- Haga clic en el botón de Inicio para volver al Iniciador.
- De Eclipse, detenga el proceso desde el panel de dispositivos
a iniciar el programa de lanzador, esta vez me sale el siguiente:
java.lang.RuntimeException: No se puede iniciar la actividad ComponentInfo {com.example .Reports}: java.lang.RuntimeException parcelable encontraron ClassNotFoundException la lectura de un objeto serializable {name = com.example.MyClass}
Causado por: java.lang.ClassNotFoundException: com.examp.MyClass en el cargador dalvik.System.PathClassLoader [.]
pistas y observaciones:
La pista más importante es: si no la salvo myObj en onSaveInstanceState(), entonces todo está bien. Y, poner cualquier tipo primitivo en el Bundle está bien, pero no en mis objetos.
La excepción se produce fuera de mi código, sucedió entre onCreate() y onResume(). Pasó dentro de Android.
El nombre de la clase en el mensaje de error es correcto: com.example.MyClass. Originalmente era una clase interna dentro de la actividad, pero para aislar el problema, lo moví a un archivo separado, sin éxito.
Creo que la implementación de Serializable es correcta, ya que se puede serializar a/desde un archivo en otras partes del programa.
¿Alguien tiene una idea de alguna posible causa de esto? ¡Muy apreciado! (Lo siento, no puedo poner código detallado aquí, porque todo está entrelazado aquí y allá. Solo puedo aislar tanto como sea posible.)
Muchas gracias por regresar e informar su solución. No puedo imaginar cuánto tiempo habría llevado imaginar esto, no es nada obvio – HXCaine