Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

389
Visualizações
Bloqueo de la vista web de Android "Señal fatal 5 (SIGTRAP)"

Tengo una aplicación con vista web en la que cargo contenido HTML con JavaScript habilitado. La vista web está dentro de un fragmento.

Así es como inicializo la vista web dentro del método onCreateView del fragmento:

 WebView webview = (WebView) mainView.findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDisplayZoomControls(false); webSettings.setLoadsImagesAutomatically(true); webSettings.setBuiltInZoomControls(true); webSettings.setDomStorageEnabled(true); webSettings.setSupportMultipleWindows(true); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); /* * My code */ } }); webview.setWebChromeClient(new WebChromeClient() { @Override public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) { WebView.HitTestResult result = view.getHitTestResult(); String data = result.getExtra(); if (data != null) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(data)); startActivity(browserIntent); } return false; } }); webview.loadDataWithBaseURL(baseUrl, htmlData, "text/html", "utf-8", "");

En la vista web, un mapa se carga con JavaScript. En este mapa, podemos hacer clic en elementos y cargar fotos. Al hacer clic, la foto se muestra en una ventana emergente (todavía dentro de la vista web). Cuando hago clic en el botón Atrás para volver al mapa, la aplicación falla.

GIF del accidente en la aplicación

Aquí está el registro de errores:

A/libc: Señal fatal 5 (SIGTRAP), código 1 en tid 949 (Chrome_InProcRe) [ 03-21 11:26:08.510 364: 364 W/ ] depurado: solicitud de manejo: pid=32610 uid=10289 gid=10289 tid= 949

Probé y obtuve el bloqueo en Android 7.1.1, 6.0.1, 5.0.2. Luego probé con Android 4.4.2 y la aplicación no fallaba.

Cuando hago clic en el botón Atrás (como podemos ver en el GIF), debería volver al estado anterior con la ventana emergente cerrada

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Intente anular la funcionalidad de navegación hacia atrás y cierre la ventana emergente usted mismo.

No necesita manejar toda la lógica de navegación de la pila, solo tenga un estado cuando muestre esta ventana emergente. Aplique su propia lógica de navegación (como cerrar manualmente la ventana emergente).

 void onBackPressed(){ if(isTheBuggyPopupIsOn){ closeTheBuggyPopup(); } else{ super.onBackPressed(); } }
over 4 years ago · Santiago Trujillo Relatório

0

Prueba esto....

Primero agrega esto

 webView.setWebViewClient(new MyBrowser());

y luego agrega esto

 public class MyBrowser extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub if (url.equals(""YOUR URL)) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } else { return false; } } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda