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.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.
Https://developer.android.com/topic/libraries/architecture/navigation/navigation-conditional
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.
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