NullPointerException Fantasma

Bom dia pessoal.

Estou enfrentando um problema na construção de um jogo que está me enlouquecendo. À princípio gostaria de dizer que estou escrevendo aqui no forum depois de analisar o código com muita calma (às vezes quase faltava) há alguns dias, pra não ficar pertubando os colegas com dúvidas que já tenham sido respondidas em outros tópicos e tal.

Estou elaborando um jogo para celular, mas não é a primeira vez. É bem verdade que ainda tenho milhares de dúvidas, mas já consigo pensar mais dentro do contexto desse tipo de aplicação móvel. Dentre outras coisas estava criando uma classe que gerencia objetos chamada “cerebro”. Essa classe instancia vários elementos. O método “run()” da thread principal do jogo fica atualizando os estados de todo mundo através de “cerebro.atualizarEstados()”.

A questão é que comecei a me deparar com problemas intermitentes de “NullPointerException” provenientes deste método, o que indica que a classe está tentando usar um objeto que é nulo, seja atribuindo, solicitando uma variável, etc. Quando tento depurar percebo que todas as variáveis de objetos possuem os objetos e seus respectivos atributos. Mas continua lançando excessão. Passei o pente fino em cada ponto e as variáveis estão preenchidas, etc. Já estava pensando em possibilidades absurdas quando me veio algo a mente e é com base nisso que vou formular a pergunta.

Estou usando um notebook da HP, o “Pavilion tx 1070br”, que possui o processador AMD Turion 64. Me lembro que no início formatei o computador, que tinha vindo com o Vista 64, e tentei colocar o Windows XP 32 bits. Tive muita dor de cabeça pra conseguir todos os drivers e finalmente o computador ficou emulando 32 bits com o Windows XP. Tudo ok.

Também lembro que instalei o Java para 32 bits, NetBeans e etc.

A pergunta que faço, depois de ter quebrado a cabeça com uma excessão fantasmagórica é:
Será que estou tendo problema com as referências dos objetos por um problema entre o processador real de 64 bits, a emulação de 32 bits e a Máquina Virtual Java para 32 bits?

Por mais absurdo que pareça, nessas horas a gente cogita tudo.

Grande abraço e agradeço muito a colaboração.

Não sei não.

Na minha opinião é o lance das threads diferentes que pode estar lançando essa excessão.

Eu tive alguns problemas com isso uma vez pq o pc alternava entre as threads como bem entendia (que é o normal mesmo) e de vez em qdo andava mais do que devia por uma e chegava a pontos onde uma determinada variável criada pela outra ainda não tinha sido instanciada.

Pensa por ae.

Checa se vc tem alguém que é usado por uma thread mas depende de outra pra nascer, receber valor e etc.

Pq como o tempo de processamento delas muda sempre, as vezes vai acontecer e as vezes não…

posta ai seu código!
mas a única coisa que posso garantir é que existe um objeto null sendo usado :lol:

tenta botar essas variaveil como static

poem como static as que são acessadas por mais de uma thread

Oi galera.

Seguinte, consegui botar pra rodar depois de muita insistência. A dica do dmandrak me deu uma luz, pois alterei o momento em que uma das threads iniciava e agora aparenta funcionar tudo direitinho. Tinha alguma relação mesmo com o fato de uma thread solicitar algo de outra que provavelmente não estava disponível, mesmo o depurador mostrando tudo aparentemente preenchido.
De qualquer forma valeu a todos pela colaboração, já posso continuar e esperar o próximo “aperreio”.

Valeu turma.