TWA应用低版本系统运行正常,Android 11系统下打开提示需安装Chrome Stable 72及以上版本
Android 11 设备上TWA弹出"请安装Chrome Stable 72或更高版本"的排查解决
这个报错不是真的检测到设备上没有符合版本要求的Chrome,而是TWA的浏览器检测逻辑在Android 11的权限规则下失效了,可按以下步骤逐一定位解决:
最常见根因:未适配Android 11的包可见性规则
Android 11开始系统新增了包可见性限制:应用默认无法获取设备上其他已安装应用的信息,除非在清单文件中显式声明可查询的应用/Intent类型。低于Android 11的版本没有这个限制,所以你的TWA在旧版本上可以正常检测到Chrome的存在和版本,到Android 11上因为查不到Chrome的信息,就直接判定为“没有符合要求的Chrome”,触发对应提示。
修复方式:
- 打开项目下的
AndroidManifest.xml文件 - 在
<manifest>根节点下,和<application>节点同级的位置,添加对应的查询声明,保证系统允许TWA检测到支持https浏览的可信浏览器:
<queries> <intent> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" /> </intent> </queries>
- 不要只写指定Chrome包名的查询逻辑,保留上面的Intent类型查询,不然部分基于Chrome内核的可信浏览器渠道(如Chrome Beta、Dev)也会被检测遗漏。
第二优先级排查:TWA依赖库的版本适配
- 检查项目中引入的TWA核心Browser Helper依赖版本,如果使用的是2.0.0以下的老旧版本,本身没有内置Android 11包可见性的适配逻辑,哪怕在清单里加了声明也可能出现检测异常,建议将该依赖升级到当前稳定的正式版本。
- 检查TWA构建配置中自定义的Chrome最低版本校验参数,不要手动将最低版本设得过高(比如超过了出问题设备上实际安装的Chrome版本),正常官方默认的72版本阈值无需调整,自定义参数会直接触发版本不匹配的报错。
第三优先级排查:设备端的实际Chrome状态
- 确认出问题的Android 11设备上安装的Chrome包,是官方Stable渠道的包(包名
com.android.chrome)而非第三方套壳的Chromium内核浏览器:TWA的检测逻辑默认只识别官方Chrome各渠道的安装信息,第三方套壳浏览器哪怕内核版本远高于72,也会被判定为不可用。 - 手动打开设备上的Chrome Stable,确认实际版本号:如果版本确实低于72,将Chrome更新到最新稳定版即可解决;如果版本远高于72仍弹提示,基本可以判定是前面的包可见性适配或者依赖库版本的问题。
常见踩坑提醒
- 不要为了省事申请
QUERY_ALL_PACKAGES全量包查询权限绕过检测,这类权限在主流应用商店的审核中会被重点校验,普通TWA应用根本通不过审核,按规则声明对应Intent的查询权限完全能满足检测需求,也不存在合规风险。 - 部分定制ROM会默认停用或隐藏内置的Chrome应用,这种情况即使做了所有适配,TWA也检测不到Chrome的存在,需要引导用户在系统应用设置中启用内置Chrome,或者在TWA配置中接入支持的兜底可信浏览器分支。
内容的提问来源于stack exchange,提问作者ABHI
相关产品推荐
相关产品推荐

