Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: chechocossa en 29 de Diciembre de 2005, 02:41:33 PM

Título: Emuladores Para Móviles Y Recordstore
Publicado por: chechocossa en 29 de Diciembre de 2005, 02:41:33 PM
 Hola a todos.

A este post lo puse en el subforo del concurso de movilgamers... pero se ve que no entra mucha gente por ahí. Así que perdonen la repetición, pero lo inicio nuevamente desde acá, a ver si tengo más suerte.

Estoy implementando la clase que administrará todo lo referente a la persistencia de datos del juego.

He notado que las respuestas de los emuladores de Nokia es bastante irregular en lo que al uso de RecordStore se refiere.

Por ejemplo, este código:


  /**
  * Verifica la existencia del Record Store
  * return : True si existe ya
  */
  public boolean VerifyRecordStore() {
      try {
          rs = RecordStore.openRecordStore( "GameData", false );
          rs.closeRecordStore();
          return true;
      }
      catch ( RecordStoreException e ) {
          return false;
      }
  }   // End of VerifyRecordStore()



en el emulador para el S60 me tira "Uncaught exception: java.lang.RuntimeException: java.lang.NullPointerException"

siendo que en el del S40 y en el mpowerplayer funciona correctamente.

A alguien le ocurren cosas similares? Es posible emular correctamente el uso del RecordStore?

Gracias por sus comentarios... Y suerte en el concurso!!
Título: Emuladores Para Móviles Y Recordstore
Publicado por: zupervaca en 29 de Diciembre de 2005, 03:34:17 PM
 
CitarRecordStore.openRecordStore( "GameData", false );
Te aconsejo poner true ya que si la base de datos no existe te la creara automáticamente, si existiera no la elimina, simplemente usa la que existe.

Para mas info: http://www.mailxmail.com/curso/informatica.../capitulo25.htm
Este link es un completo tutorial que trae de todo.

CitarUncaught exception: java.lang.RuntimeException: java.lang.NullPointerException
Este error sucede por que no se ha podido capturar la excepcion NullPointerException, es decir, no se ha creado el objeto rs con lo que es nulo y al ejecutar rs.closeRecordStore(); casca, poniendo el true de marras puede que soluciones el problema, si sigue fallando puede ser tema del emulador.

Si lo que quieres es saber si existe o no haz esto:
Citar
public boolean VerifyRecordStore()
{
   try
   {
  rs = RecordStore.openRecordStore( "GameData", false );
  rs.closeRecordStore();
  return true;
   }
   catch( RecordStoreException e )
   {
  return false;
   }
   catch( NullPointerException np )
   {
  return false;
   }

}
Tambien podrias poner un if antes de ejecutar el rs.closeRecordStore(); pero como java se basa mas que nada en excepciones a mi me gusta mas asi.
Título: Emuladores Para Móviles Y Recordstore
Publicado por: zupervaca en 29 de Diciembre de 2005, 03:55:34 PM
 No me deja editar el mensaje anterior, tal vez comprobando la excepcion RecordStoreNotOpenException no tengas que poner dos catchs.

http://www.blackberry.com/developers/docs/...nException.html
Título: Emuladores Para Móviles Y Recordstore
Publicado por: chechocossa en 29 de Diciembre de 2005, 04:38:27 PM
 Gracias por la respuesta  :)

No pongo true porque en realidad no quiero crear la base de datos en ese momento, por eso uso el catch para capturar el error.
Con el segundo catch pude hacerlo funcionar también en el emulador del S60...

Realmente lo que me preocupaba era que el mismo código fallaba en los distintos emuladores.

Con RecordStoreNotOpenException igual me pide los dos catch, si no, no compila.

Saludos, zupervaca.