Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Erro NetworkOnMainThreadException

Olá pessoal, tudo bem? estou tomando erro na thread principal ainda, mas ta o codigo igual da aula, segue erro

Erro no Logcat

Minhas Classes:

AlunoConverter

WebClient

EnviaDadosServidor

ListaActivity

ProjetoGitHub

Estranho, porque a thread aparenta estar certa, alguma sugestão?

10 respostas

Oi Bruno, tudo bem?

Testei o seu projeto, o primeiro problema é que você não está executando a task EnviaDadosServidor, ou seja, realmente você está fazendo uma operação de rede que pode travar a thread principal.

Outro problema que vi é que a EnviaDadosServidor não está dentro do pacote raiz br.com.teste.agenda, portanto, o primeiro passo é deixá-la dentro do pacote raiz. Então, no onOptionsItemSelected() você exclui todo o código que faz a chamada do WebClient e execute a Task conforme a aula: new EnviaDadosServidor(this).execute();

Eu testei dessa maneira e ainda apresenta o erro por falta de permissão de acesso a rede, confira como as permissões são dadas, teste o App e veja se funciona.

[]s

Fala Alex, tudo bem e contigo?

Fiz todas as alterações que você sugeriu:

  • Colocar o arquivo no pacote correto
  • Alterar o codigo
  • verificar permissões

porém o erro persiste, o LogCat escreveu isto

Meus ListaActivity ficou assim

Por que ele da esse erro de leaked window?

Oi Bruno, tranquilo também :)

Ele ainda tá dando problema de permissão, confira se no seu AndroidManifest.xml tem essas permissões configuradas:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Pelo o que eu vi do seu arquivo do GitHub não tem.

Rapaz, ta dificil pegar esse bug, adicionei no aquivo essas permissões, porém segue o mesmo erro :(

Oi Bruno, testei o seu App agora, o problema está no AlunoConverter na linha 15. A chave para o objeto está como "sluno" mude para "aluno" e faça o teste novamente.

[]s

Nossa! que vacilo! Como que você conseguiu descobrir isso? foi pelo log mesmo ou apenas foi revisando os códigos?

Oi Bruno, esse foi apenas revisando mesmo, pois essa abordagem nativa é bem ruim para comunicações externas... No curso de sincronização com Web Service, eu explico uma técnica bem melhor com o Retrofit, depois dá uma olhada :)

[]s

Show de bola!! Vou fazer esse curso!! Alex brigadão!

Boa! Se todas as dúvidas foram sanadas para esse tópico, não esqueça de marcar como solucionado. Bons estudos o/

[]s

solução!

Show!! Valeu!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software