Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Emuladores Para Móviles Y Recordstore

Iniciado por chechocossa, 29 de Diciembre de 2005, 02:41:33 PM

« anterior - próximo »

chechocossa

 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!!
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina

zupervaca

 
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.

zupervaca

 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

chechocossa

 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.
ergio Cossa

http://www.fatherjoe.com.ar - Father Joe Mobile
http://www.fantasticzone.blogspot.com - Fantastic Zone Blog
http://www.fantasticzone.com.ar - Fantastic Zone Page
Argentina






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.