hipoteca.idioma.Excepçãolegalargumentexcepção: o destino de navegação xxx é desconhecido para este controlador de navegação

estou a ter problemas com o novo componente de Arquitectura de Navegação Android quando tento navegar de um fragmento para outro , tenho este estranho erro:

java.lang.IllegalArgumentException: navigation destination XXX
is unknown to this NavController
Todos os outros navegadores funcionam bem, excepto este em particular.

Eu uso:

findNavContoller()

Função de extensão do fragmento para ter acesso ao navegador.

Qualquer ajuda será apreciada.

Author: Po10cio, 2018-06-27

4 answers

No meu caso, o erro ocorreu porque eu tinha uma acção de navegação com as opções {[[0]} e Clear Task activadas após um ecrã inicial.

 1
Author: Eury Pérez Beltré, 2018-06-28 00:16:42
Parece que estás a limpar a tarefa. Um aplicativo pode ter uma configuração única ou uma série de telas de login. Estes ecrãs condicionais não devem ser considerados o destino inicial do seu aplicativo.

Https://developer.android.com/topic/libraries/architecture/navigation/navigation-conditional

 1
Author: Patrick, 2018-07-16 07:16:34
No meu caso, estava a usar um botão personalizado para navegar. Eu chamei onBackPressed() em vez do seguinte código
findNavController(R.id.navigation_host_fragment).navigateUp()

Isto causou a ocorrência do IllegalArgumentException. Depois de o ter mudado para usar o método navigateUp() em vez dele, não voltei a ter um acidente.

 0
Author: Neil, 2018-07-25 07:15:37

No meu caso, se o Utilizador carregar duas vezes na mesma vista muito rapidamente, este estoiro irá ocorrer. Então você precisa implementar algum tipo de lógica para evitar vários cliques rápidos... O que é muito irritante, mas parece ser necessário.

Você pode ler mais sobre a prevenção disto aqui: Android impedindo o duplo clique num botão

 0
Author: Charles Madere, 2018-09-20 00:17:18