Erro estranho de indexoutofboundsexception na Midlet

3 respostas
A

Olá a Todos,

Estou com um erro na MIDlet quando executada no celular e apenas na primeira tentativa, na segunda tentativa o erro não acontece e funciona normal. O erro é de indexoutofboundsexception, acredito que seja porque esteja sendo acessado uma posição do vetor que é inexistente.
Vejam o codigo abaixo, é onde ocorre o erro, eu tenho um vetor vetRet que possui 4 posições, eu exibo o length dele no celular e é isso que retorna.
Registros é um List, e get_registros é um metodo criado pelo NetBeans para retorna-lo, será que pode ser neste momento o erro?
Porque o valor devetRet[0] eu consigo vizualizar, o erro ocorre entre as linhas abaixo.

this.get_registros().setTitle(Disciplinas/ + vetRet[0].toString());

for(int i=1;i<vetRet.length;i++)    {

get_registros().append(vetRet[i].toString(), image);

}
public List get_registros() {

if (registros == null) {

// Insert pre-init code here

registros = new List(Disciplinas, Choice.IMPLICIT, new String[0], new Image[0]);

registros.addCommand(get_cmdConsulta());

registros.addCommand(get_cmdsair2());

registros.setCommandListener(this);

registros.setSelectedFlags(new boolean[0]);

registros.setSelectCommand(get_cmdConsulta());

// Insert post-init code here

}

return registros;

}

Alguém já viu isso, e pior, no emulador funciona sem problema, apenas no celular ocorre o erro, e apenas na promeira tentativa a segunda funciona. Aff…

3 Respostas

ze_kiefa

Tem como você colocar a pilha de erros? Acho que fica mais fácil detectar o erro.

A

Mas como posso capturar a pilha de erro, já que o erro dá apenas no celular? Tem agluma forma?

A

Olá Pessoal,

Descobri que o erro era no metodo GetList que o proprio NetBeans criou, no momento da instanciação do List, ele colocou: … new List(nome, …, new String[0], new Image[0]), pois o list era inicialmente vazio, assim, ele criou um vetor vazio de itens e imagens, mas não sei dizer porque o celular que eu estava testando não reconhecia como um vetor vazio, e dai, dava o erro, para resolver tive que fazer uma ganbiarra, é feio, mas não achei outra solução, instanciei o List com um item inicial, e depois de instanciado eu apago este item. Pelo menos resolveu. Se alguém souber a origem do erro e como soluciona-lo de uma maneira melhor, gostaria muito de saber.

Obrigada.

Criado 24 de maio de 2008
Ultima resposta 28 de mai. de 2008
Respostas 3
Participantes 2