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

Другие вопросы по тегам