Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

RecyclerView com Butterknife

Pessoal, quando pego a referência de um recyclerView com o butterKnife, e tento inicializar ele no onCreate, dá erro de Null Exception, como se o RecyclerView não tivesse sido capturado.

Mas se eu fizer o mesmo processo com o findViewById, funciona. Sabem me dizer porque?

Detalhe: Eu estou inicializando o ButterKnife.bind(this); antes de chamar o BindView.

11 respostas

Oi Aline, tudo bem? Pode mandar o código via GitHub para eu dar uma olhada? Dessa forma eu consigo testar e ver o motivo do problema :)

[]s

Estou tentando usar o RecyclerView no "listaPopulares", e estou recebendo o erro "Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference"

Mas veja que nesse método estou pegando o mesmo id com findViewById.. Com ele, o código funciona.

Parece que o problema é porque você tá fazendo bind de uma view que não foi adicionada na Activity ainda, ou seja, você precisa chamar o ButterKnife.bind(this); depois do setContentView(R.layout.activity_main);. Faz esse teste e vê se funciona.

[]s

Poxa, infelizmente não é isso. Coloquei o setContentView primeiro, e mesmo assim o erro persiste.

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(android.support.v7.widget.RecyclerView$Adapter)' on a null object reference

Realmente tem algo estranho, acredito que consigo solucionar testando o projeto, pois pode ser alguma configuração de build ou algo que não consigo ter certeza sem testar, consegue me mandar o projeto?

https://github.com/assouza19/SouzasMovies

solução!

Oi Aline, eu testei e vi que o problema foi porque faltou a adição do annotation processor no build.gradle. Também tinha um outro bug para o listener de seleção de item no menu, pois ele pode ser nulo ou opcional, eu ajustei também adicionando a annotation @Optional.

Fiz um pull request com a edição, dê uma olhada e veja se funciona como esperado.

[]s

Nossa, muito bom professor. Agora sim, funcionou.

Agradeço!

Que bom que funcionou! Vou apagar o fork que fiz do seu projeto, blz? Bons estudos :)