NullPointerException при использовании доверенных веб-операций на Android (несколько устройств)
Я использую TrustedWebActivities и получаю немедленный сбой приложения на устройствах Samsung S8, S9 и Pixel 2 с приведенным ниже исключением. Некоторые исследования предполагают, что это может произойти на устройствах, где установлена более старая версия Chrome, которая не поддерживает TWA, а резервный метод не работает. Но я подтвердил, что версия Chrome - 71 (также это работает на Samsung S7, Pixel 3).
java.lang.NullPointerException:
at android.support.customtabs.TrustedWebUtils.launchAsTrustedWebActivity (TrustedWebUtils.java:91)
at android.support.customtabs.trusted.LauncherActivity$TwaCustomTabsServiceConnection.onCustomTabsServiceConnected (LauncherActivity.java:192)
at android.support.customtabs.CustomTabsServiceConnection.onServiceConnected (CustomTabsServiceConnection.java:44)
at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:1656)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java:1685)
at android.os.Handler.handleCallback (Handler.java:789)
at android.os.Handler.dispatchMessage (Handler.java:98)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6938)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Я считаю, что это происходит на этой линии, где session
является нулем, который является объектом типа CustomTabsSession
, Вот источник.
session.validateRelationship(CustomTabsService.RELATION_HANDLE_ALL_URLS, uri, null);
Любая помощь приветствуется. Спасибо.
0 ответов
Эта проблема была исправлена как фиксация https://github.com/GoogleChrome/custom-tabs-client/commit/51a4ff1d07d8507b934fc9d9af226a969b6c4674?diff=split
вы можете обновить версию в файле оценок, она должна работать
implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:d08e93fce3fb3e1f22214ee2f23fddc4f4e92634'
как вы можете проверить разницу, функция проверки была удалена.
session.validateRelationship(CustomTabsService.RELATION_HANDLE_ALL_URLS, uri, null);
Однако, как команда Google упоминает в readme, вместо этого мы должны использовать Adnroid Browser Helper.
Please use the Android Browser Helper library instead. It contains the same functionality updated to work with AndroidX.
https://github.com/GoogleChrome/android-browser-helper