Сбой ActivityNotFoundException при запуске намерения «открыть URL» в Chrome 86.0.4240.75

#android #android-webview #android-chrome

#Android #android-webview #android-chrome

Вопрос:

Chrome для Android версии 86.0.4240.75 был выпущен всего несколько дней назад. Развертывание едва началось, но мы наблюдаем новый сбой, число которых растет, на устройствах, использующих эту версию Chrome / Android System WebView.

 val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.parse(url), "text/html")
intent.addCategory(Intent.CATEGORY_BROWSABLE)
startActivity(intent)
  

Похоже, что для любого URL-адреса на любом устройстве, использующем версию 86.0.4240.75, приведенный выше код завершает работу с ActivityNotFoundException:

 android.content.ActivityNotFoundException: No Activity found to handle Intent 
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1854) 
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1544)
  

Похоже на ошибку в Chrome, но кто-нибудь уже нашел обходной путь?

Ответ №1:

Немного удивительно, но я нашел простое решение. На самом деле два: удалить тип MIME или удалить категорию.

Это отлично работает даже с 86.0.4240.75:

 val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
intent.addCategory(Intent.CATEGORY_BROWSABLE)
startActivity(intent)
  

Это тоже:

 val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.parse(url), "text/html")
startActivity(intent)
  

(Я не уверен, в чем преимущество определения text/html or CATEGORY_BROWSABLE было в первую очередь, поскольку ни то, ни другое не кажется обязательным.)