仅Chrome 94.0.4606.80下AppAuth自定义标签页意图点击密码框应用崩溃
解决方案
问题根因
这是Chrome 94.0.4606.80版本的原生已知bug,和应用侧AppAuth的使用逻辑无关。触发原因是该版本Chrome的密码键盘辅助栏组件在Custom Tab场景下渲染异常,点击密码输入框触发自动填充逻辑时会出现布局加载失败,你遇到的崩溃日志完全匹配该bug的特征:
android.view.InflateException: Binary XML file line #38 in com.android.chrome:layout/0_resource_name_obfuscated: Binary XML file line #6 in com.android.chrome:layout/0_resource_name_obfuscated: Error inflating class org.chromium.chrome.browser.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabLayoutView
Chrome官方在94.0.4606.81及之后的版本已经修复了该问题。
修复/规避方案
- 优先升级AppAuth依赖版本:将你当前的依赖配置
implementation 'net.openid:appauth:0.10.0'升级到0.11.1及以上版本,该版本的AppAuth已经内置了针对该Chrome版本bug的兼容逻辑,会自动在受影响的Chrome版本下禁用有问题的辅助栏特性,无需额外修改业务代码 - 若暂时无法升级AppAuth版本,可手动添加兼容逻辑:构造CustomTabsIntent时,给intent的extras中添加键值对
"org.chromium.chrome.browser.customtabs.EXCLUDE_KEYBOARD_ACCESSORY" = true,再将该intent传给AppAuth的授权请求构造器即可规避 - 端侧引导方案:可在检测到用户Chrome版本为94.0.4606.80时,提示用户升级Chrome浏览器到最新版本,即可彻底解决该问题
内容的提问来源于stack exchange,提问作者Nirmal Sinh Revar
相关产品推荐
相关产品推荐

