Quando tento iniciar minha atividade AndEngine , recebo este erro:
ERROR/InputDispatcher(21374): channel '4122e148 my.package.AcGame (server)' ~ Channel is unrecoverably broken and will be disposed!
O aplicativo não trava, mas há uma tela preta e o dispositivo não reage a pressionar os botões 'voltar' ou 'início'.
Alguém sabe qual é o problema?
Respostas:
Um dos motivos mais comuns para ver esse erro é quando tento exibir uma caixa de diálogo de alerta ou de progresso em uma atividade que não está em primeiro plano. Como quando um thread em segundo plano que exibe uma caixa de diálogo está sendo executado em uma atividade pausada.
fonte
Eu acho que você tem vazamentos de memória em algum lugar. Você pode encontrar dicas para evitar vazamento de memória aqui . Além disso, você pode aprender sobre as ferramentas para rastreá-lo aqui .
fonte
Você usou outro thread de interface do usuário? Você não deve usar mais de 1 thread de interface do usuário e fazer com que pareça um sanduíche. Isso causará vazamentos de memória.
Resolvi um problema semelhante há 2 dias ...
Para manter as coisas curtas: O thread principal pode ter muitos threads de IU para fazer vários trabalhos, mas se um sub-thread contendo um thread de IU estiver dentro dele, o thread de IU pode não ter terminado seu trabalho ainda enquanto seu thread pai já terminou seu trabalho, isso causa vazamentos de memória.
Por exemplo ... para o aplicativo Fragment & UI ... isso causará vazamentos de memória.
Minha solução é reorganizar conforme abaixo:
para você referência.
Eu sou taiwanês, fico feliz em responder aqui mais uma vez.
fonte
Você pode ver o código-fonte sobre esta saída aqui :
É causa por ciclo quebrado bloqueado ...
fonte
Recebi um erro semelhante (meu aplicativo trava) depois de renomear algo em
strings.xml
e esqueci de modificar outros arquivos (um arquivo de recurso xml de preferência e código java).IDE (android studio) não apresentou erros. Mas, depois de reparar meus arquivos xml e código java, o aplicativo funcionou bem. Então, talvez haja alguns pequenos erros em seus arquivos xml ou constantes.
fonte
Eu tive o mesmo problema. O meu foi devido a um terceiro jar, mas o logcat não pegou a exceção, resolvi atualizando o terceiro jar, espero que isso ajude.
fonte
Como eu enfrentei esse erro, em algum lugar em seu código suas funções ou bibliotecas que eram executadas em threads diferentes, então tente chamar todo o código no mesmo thread, ele corrigiu meu problema.
Link de referência do Google
fonte
Eu tive o mesmo problema, mas o meu foi devido a um vazamento de memória do banco de dados do Android. Eu pulei um cursor. Assim, o dispositivo falha para consertar esse vazamento de memória. Se você estiver trabalhando com o banco de dados Android, verifique se você ignorou um cursor ao recuperar do banco de dados
fonte
Aconteceu comigo também enquanto rodava um jogo usando o and-engine. Foi corrigido depois de adicionar o código abaixo ao meu manifest.xml. Este código deve ser adicionado à sua atividade principal.
fonte
Eu tive o mesmo problema. Para resolver o erro: Feche-o no emulador e execute-o usando o Android Studio.
O erro ocorre quando você tenta executar novamente o aplicativo quando o aplicativo já está em execução no emulador.
Basicamente, o erro diz - "Eu não tenho mais o canal existente e descartando a conexão já estabelecida", pois você executou o aplicativo do Android Studio novamente.
fonte
Eu também estava tendo o mesmo problema. No meu caso foi causado ao tentar reproduzir vídeos com uma codificação pobre (exigia muita memória). Isso me ajudou a detectar o erro e solicitar outra versão do mesmo vídeo. https://stackoverflow.com/a/11986400/2508527
fonte
No meu caso, esses dois problemas ocorrem em alguns casos, como quando estou tentando exibir a caixa de diálogo de progresso em uma atividade que não está em primeiro plano. Então, eu dispenso o diálogo de progresso em onPause do ciclo de vida da atividade. E o problema está resolvido.
Não é possível iniciar este animador em uma vista separada! revelar efeito BUG
RESPOSTA: Não é possível iniciar este animador em uma visualização separada! revelar efeito
Por que estou recebendo o erro 'O canal está irrecuperavelmente quebrado e será descartado!
RESPOSTA: Por que estou recebendo o erro 'O canal está irrecuperavelmente quebrado e será eliminado!'
fonte
Eu tive esse problema e a causa foi, na verdade, um NullPointerException. Mas não foi apresentado a mim como um!
minha saída: a tela travou por um longo período e ANR
Meu estado: o arquivo xml de layout foi incluído em outro layout, mas referenciou a visualização incluída sem fornecer id no layout anexado. (eu tinha mais duas implementações semelhantes da mesma visão filha, então o id do recurso foi criado com o nome fornecido)
Observação: era um layout de diálogo personalizado, portanto, verificar os diálogos primeiro pode ajudar um pouco
Conclusão: Ocorreu um vazamento de memória ao pesquisar o id da visualização secundária.
fonte
Para mim, foi causado por uma imagem da tela inicial que era muito grande (acima de 4000x2000). O problema desapareceu após reduzir suas dimensões.
fonte
Lendo todas as contribuições, parece que muitas origens diferentes apresentam os mesmos sintomas de problema.
No meu caso, por exemplo - tive este problema assim que adicionei
às propriedades da minha barra de progresso. Acho que o designer de GUI do ADT é conhecido por vários bugs. Portanto, presumo que este seja um deles. Portanto, se você encontrar sintomas de problema semelhantes (que simplesmente não fazem sentido) após brincar com a configuração da GUI, tente reverter o que você fez e desfazer as últimas modificações da GUI.
Basta pressionar Ctrl + Z com o arquivo modificado recentemente na tela.
Ou:
A ferramenta de controle de versão pode ser útil. Abra o painel de controle de versão - escolha a guia Alterações locais e veja os arquivos modificados recentemente (talvez .xml).
Clique com o botão direito em alguma das mais suspeitas e clique em Mostrar comparação. Então, adivinhe qual linha modificada pode ser a responsável.
Boa sorte :)
fonte
Este erro ocorreu em caso de vazamento de memória. Por exemplo, se você tem qualquer contexto estático de um componente Android (Activity / service / etc) e ele é eliminado pelo sistema.
Exemplo: controles do reprodutor de música na área de notificação. Use um serviço de primeiro plano e defina ações no canal de notificação por meio de PendingIntent como abaixo.
E se este canal de notificação for interrompido abruptamente (pode ser pelo sistema, como nos dispositivos Xiomi quando limpamos os aplicativos de fundo), então, devido a vazamentos de memória, esse erro é lançado pelo sistema.
fonte
No meu caso, eu estava usando a biblioteca Glide e a imagem passada para ela era nula. Então foi lançando esse erro. Eu coloco um cheque assim:
E funcionou bem. Espero que isso ajude alguém.
fonte
Recebi a mesma mensagem logcat, apenas perceba que o valor string.xml da matriz não pode ser número / dígito, mas apenas texto / alfabeto é permitido.
fonte