Сбой активности WebView при отсутствии пакета Chrome - PullRequest
0 голосов
/ 26 июня 2019

Мое приложение отлично работает в течение нескольких лет в Play Store. XML макета основного действия содержит WebView. В последнее время приложение начало падать во время запуска (но не всегда и не на всех устройствах).

Logcat показывает RuntimeException на WebViewFactory о Пакет не найден: com.android.chrome .

Я не использую этот системный класс явно. Сбой происходит независимо от того, является ли WebView частью макета XML или создается программно. Нет try / catch поможет.

06-26 18:22:52.560  1363  1409 I ActivityManager: Displayed com.my.app/.MyActivity: +46ms
06-26 18:22:52.829  1363  6524 D ActivityManager: # addPackageDependency # packageName=com.android.chrome -> proc: ProcessRecord{e72ceb3 9789:com.my.app/u0a214}
06-26 18:22:52.839  9789  9789 I WebViewFactory: Loading com.android.chrome version 75.0.3770.101 (code 377010137)
--------- beginning of crash
06-26 18:22:52.903  9789 10122 E AndroidRuntime: FATAL EXCEPTION: Thread-2
06-26 18:22:52.903  9789 10122 E AndroidRuntime: Process: com.my.app, PID: 9789
06-26 18:22:52.903  9789 10122 E AndroidRuntime: java.lang.RuntimeException: Package not found: com.android.chrome
06-26 18:22:52.903  9789 10122 E AndroidRuntime:        at android.webkit.WebViewDelegate.getPackageId(WebViewDelegate.java:164)
06-26 18:22:52.903  9789 10122 E AndroidRuntime:        at xZ.a(PG:16)
06-26 18:22:52.903  9789 10122 E AndroidRuntime:        at xq.run(PG:14)
06-26 18:22:52.903  9789 10122 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:764)
06-26 18:22:52.908  9789  9789 I cr_LibraryLoader: Time to load native libraries: 3 ms (timestamps 7584-7587)
06-26 18:22:52.909  9789 10123 D OSTracker: OS Event: crash
06-26 18:22:52.844  1363  6524 D ActivityManager: # addPackageDependency # packageName=com.android.chrome -> proc: ProcessRecord{e72ceb3 9789:com.my.app/u0a214}
06-26 18:22:52.911  1363  3290 W ActivityManager:   Force finishing activity com.my.app/.MyActivity

(для ясности я заменил имя пакета на com.my.app в журнале выше.)

Ни одна из этих строк не является моей собственной строкой журнала. Это все системы.

На сбойном устройстве установлен Chrome APK, а реализация WebView определена как Chrome.

Мне кажется, что во время запуска приложения зависимость com.android.chrome еще не готова, и система не может загрузить и привязать ее к моему процессу.

Есть ли способ принудительной предварительной загрузки зависимости?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...