NullPointer Exception no addRecord

Ola sou iniciante na programação JME e estou tentando usar RecordStore, porém na hora de inserir o registro está dando NullPointer Exception
Oque pode ser ?

Abro o RecordStore no construtor da classe conexao com o seguinte código:


public Conexao() {
        try {
            rs.openRecordStore("login", true);
            System.out.println(" RS Criado");
        } catch (RecordStoreFullException e) {
            e.printStackTrace();
        } catch (RecordStoreNotFoundException e) {
            e.printStackTrace();
        } catch (RecordStoreException e) {
            e.printStackTrace();
        }
    }

O código do metodo de inserção é o seguinte:


public void insere(Usuario usuario) {

        byte[] nome = usuario.getNome().getBytes();
                
        try {
            rs.addRecord(nome, 0, nome.length);
        } catch (RecordStoreNotOpenException e) {
            e.printStackTrace();
        } catch (RecordStoreFullException e) {
            e.printStackTrace();
        } catch (RecordStoreException e) {
            e.printStackTrace();
        }

    }

O erro é o seguinte:


TRACE: <at java.lang.NullPointerException:   0>, Exception caught in Display class
java.lang.NullPointerException:   0
        at hello.Conexao.insere(Conexao.java:45)
        at hello.MyMIDlet.commandAction(MyMIDlet.java:120)
        at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46
        at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74
        at com.sun.midp.chameleon.layers.SoftButtonLayer.commandSelected(), bci=11
        at com.sun.midp.chameleon.layers.MenuLayer.keyInput(), bci=290
        at com.sun.midp.chameleon.CWindow.keyInput(), bci=38
        at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
        at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
        at com.sun.midp.events.EventQueue.run(), bci=179
        at java.lang.Thread.run(Thread.java:619)

Alguem pode me dar um help ? Por favor !

Boa tarde Osmio

Então a referência rs é um atributo que eu criei na classe conexão, eu não instancio ela, somente a classe conexão

segue o código da classe conexão:



    private RecordStore rs ;

    public Conexao() {
        try {
            rs.openRecordStore("login", true);
            System.out.println(" RS Criado");
        } catch (RecordStoreFullException e) {
            e.printStackTrace();
        } catch (RecordStoreNotFoundException e) {
            e.printStackTrace();
        } catch (RecordStoreException e) {
            e.printStackTrace();
        }
    }

    public void fechar() {
        try {
            rs.closeRecordStore();
        } catch (RecordStoreNotOpenException e) {
            e.printStackTrace();
        } catch (RecordStoreException e) {
            e.printStackTrace();
        }
    }

    public void insere(Usuario usuario) {

        byte[] nome = usuario.getNome().getBytes();
                
        try {
            rs.addRecord(nome, 0, nome.length);
        } catch (RecordStoreNotOpenException e) {
            e.printStackTrace();
        } catch (RecordStoreFullException e) {
            e.printStackTrace();
        } catch (RecordStoreException e) {
            e.printStackTrace();
        }

    }

e o código da midlet:


if (displayable == Tela_Cadastro) {
            if (command == okCadastro) {
                // write pre-action user code here
 
        
                Usuario usuario = new Usuario();
        
                usuario.setNome(tfNome.getString());
        
                Conexao con = new Conexao();
       
                con.insere(usuario);
        
               getDisplay().setCurrent(getCadastroSucesso());

Tenta assim:

 public Conexao() {  
     try {  
         rs = RecordStore.openRecordStore("login", true);  
         System.out.println(" RS Criado");  
     } catch (RecordStoreFullException e) {  
         e.printStackTrace();  
     } catch (RecordStoreNotFoundException e) {  
         e.printStackTrace();  
     } catch (RecordStoreException e) {  
         e.printStackTrace();  
     }  
 } 

Muito obrigado godinez … problema resolvido.

Onde voce esta instanciando a referencia rs ?