Мое приложение отлично работает в течение нескольких лет в 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 еще не готова, и система не может загрузить и привязать ее к моему процессу.
Есть ли способ принудительной предварительной загрузки зависимости?
Спасибо.