Java.lang.IndexOutOfBoundsException

7 respostas
LegendandoMonster

Pessoal, j´estou há algumas horas tentando descobrir por que está dando essa exceção, já estou desistindo…
O emulador tem limite de memória? Será que isso pode estar ocasionando essa exceção?
O erro está mais em baixo…
Como o código estava grande, coloquei no no paste…

http://rafb.net/p/BN1Y8A36.html

Segundo o netbeans está dando outOfBound na linha 26 no código acima… se der pra me esclarecer :slight_smile:

...
...
Linha: 16
Coluna: 0
startApp threw an Exception
java.lang.IndexOutOfBoundsException
java.lang.IndexOutOfBoundsException
        at javax.microedition.lcdui.game.TiledLayer.setCell(TiledLayer.java:306)
        at flyWayCodes.Blocos.fillField(Blocos.java:167)
        at flyWayCodes.GameRun.<init>(GameRun.java:53)
        at flyWayCodes.Flyway.startApp(Flyway.java:26)
        at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44)
        at com.sun.midp.midlet.Scheduler.schedule(+270)
        at com.sun.midp.main.Main.runLocalClass(+28)
        at com.sun.midp.main.Main.main(+80)
Execution completed.
3615419 bytecodes executed
457 thread switches
1673 classes in the system (including system classes)
20312 dynamic objects allocated (718440 bytes)
6 garbage collections (508484 bytes collected)
ricoh-run:
semc-icon-assembly:
semc-ppro-emulator:
semc-do-run:
semc-run:
savaje-run:
nokiaS80-run:
nsicom-run:
run:
BUILD SUCCESSFUL (total time: 9 seconds)

Não sei mais o que tentar

7 Respostas

marcosbrandao

LegendandoMonster

Essa exception significa que foi feito acesso a um indice do array fora de seu range. Por exemplo, seu array tem 15 posições e você tentou fazer acesso a 16º.
Verifique seus indices, lembrando que em um array o indice começa em “0”. O ultimo indice do array é o comprimento do array - 1.
Note que ele está chegando na “linha 16”. 16 é um indice que não existe.

[editado]
Fiz um teste tirando as linhas que fazem parte do j2me, compilou e rodou sem problemas.
[/editado]

Quinger

Esse erro geralmente refere-se quando acessa uma posição inexistente do array, conforme citou o marcosbrandao

LegendandoMonster

Galera, eu sei que essa exceção é chamada quando acessamos um índice inexistente, acontece que o índice existe, a criação do array poderia até ser estática cara… só postei porque realmente não sei o que está acontecendo… O índice está lá, se não estiver eu estou ficando doido :slight_smile: e por favor me indiquem a linha que está o erro… :frowning:

LegendandoMonster

Se você executou aí marcus, e rodou legal… Creio que a falta de memória no emulador(Será que pode) se esgota e dá esse pau porque ele não sabe o que fazer… Até agora não tenho solução.

O

Acho que o erro que está dando é por causa da iniciação da classe Blocos.
Veja na classe GameRun como está fazendo para iniciar a classe Blocos
Se você iniciou com valores menores que 120x15, é isto o problema.

I

Galera, sei que este post é antigo, mas fórum é assim mesmo, se eu tive acesso a ele, muitas outras poderão ter, daki a alguns anos,

Estou com o mesmo problema, e também para J2ME, não sei o que pode ser também. Na hora de inserir

if (tfLancItemTipo.getSelectedIndex() == 1) {

GenericsFunctions gf = new GenericsFunctions();

LancamentoItemDespesa l = new LancamentoItemDespesa();

l.setCodigo(gf.geraCodigo(l));

l.setDocumento(tfLancItemDocumento.getString());

l.setDesconto(Double.parseDouble(tfLancItemDesconto.getString()));

l.setProduto(tfLancItemProduto.getString());

l.setTotal(Double.parseDouble(tfLancItemValorUnit.getString()));

l.setValorUnit(Double.parseDouble(tfLancItemVlrTotal.getText()));

l.setFk_lancamento(codLancamentoAtual);

l.setTpLancItem(‘D’);

flagTpLancItem = “D”;

mp.inserir(l);

}

está dando esta exception

java.lang.IndexOutOfBoundsException

at net.sourceforge.floggy.persistence.impl.ObjectSetImpl.getId(ObjectSetImpl.java:83)

at net.sourceforge.floggy.persistence.impl.ObjectSetImpl.get(ObjectSetImpl.java:100)

at net.sourceforge.floggy.persistence.impl.ObjectSetImpl.get(ObjectSetImpl.java:113)

at com.ikPersonal.view.Principal.commandAction(), bci=4759

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)

Desespero ! =)

V

o que é mp?

é o PersistableManager do floggy?

Criado 1 de fevereiro de 2008
Ultima resposta 1 de set. de 2010
Respostas 7
Participantes 6