You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置App DeepLink时android:path为空触发Lint警告,如何解决?

解决DeepLink根路径配置的Lint警告问题

嘿,我来帮你搞定这个Lint警告的问题!你遇到的android:path cannot be empty警告,本质是因为空路径不符合App Indexing的规范要求,而且空路径的匹配逻辑也容易埋下意外风险(比如可能误匹配到所有子路径)。结合你的需求——让基础域名指向MainActivity,未实现的子路径跳网页,这里有个完美的解决方案:

修正MainActivity的Intent Filter配置

把你原来的空路径配置,替换成使用pathPattern来精确匹配根域名(不管末尾有没有斜杠):

<intent-filter android:label="MyApp">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="myapp.com" android:pathPattern="/?" />
</intent-filter>

为什么这样做有效?

  • 解决Lint警告:pathPattern="/?"明确指定了匹配规则,符合App Indexing的规范,Lint会认可这个配置,警告自然消失。
  • 精准匹配根域名:这个规则能同时覆盖两种根路径场景:
    • 无末尾斜杠:https://myapp.com(路径为空)
    • 带末尾斜杠:https://myapp.com/(路径为"/")
      完美满足你基础域名跳转MainActivity的需求。
  • 不干扰子路径匹配:你已配置的/news和/history使用的是pathPrefix,它们的匹配优先级比pathPattern="/?"更高(因为规则更具体)。所以当用户打开https://myapp.com/news时,会优先触发NewsActivity,不会和MainActivity的规则冲突。
  • 未实现路径自动跳网页:像https://myapp.com/playlists这类未配置的子路径,没有对应的Intent Filter匹配,系统会默认把链接交给浏览器处理,完全符合你的要求。

验证效果

修改后重新编译项目,你会发现:

  1. Lint警告彻底消失;
  2. 打开https://myapp.com或https://myapp.com/都会跳转到MainActivity;
  3. /news和/history依然正常跳转对应Activity;
  4. 未配置的子路径自动打开网页。

内容的提问来源于stack exchange,提问作者Addev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:15:05