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

Android Studio编译报错:找不到display-mask:0.3.0依赖

问题成因

com.microsoft.device.display:display-mask:0.3.0是微软为Surface Duo双屏设备推出的屏幕适配工具库,你没有主动引用却出现拉取失败,核心原因有两点:

  • 该依赖属于传递依赖:你项目中主动引入的其他第三方库/AndroidX组件间接带进来了这个包,最常见的来源是1.0.0版本前后的alpha/beta版Jetpack WindowManager,或是早期Android Studio创建项目时默认带的双屏适配模板关联依赖,你不会在自己写的dependencies配置里直接看到它。
  • 依赖托管源失效:这个0.3.0版本的库最初仅托管在jCenter仓库,jCenter自2022年起停止公共拉取服务,你搁置项目超过一年,本地Gradle缓存的旧依赖包大概率已经被清理,重新编译时就会因为找不到对应仓库的资源报依赖不存在的错误。
排查与解决步骤
  • 第一步:先定位依赖的引入链路
    在项目根目录打开终端,执行Gradle依赖分析命令,明确是哪个上游依赖带入了这个包:
    • Mac/Linux环境执行:./gradlew app:dependencies --configuration releaseRuntimeClasspath | grep "display-mask"
    • Windows环境执行:gradlew.bat app:dependencies --configuration releaseRuntimeClasspath | findstr "display-mask"
      执行后输出的依赖树会清晰展示该包的完整引入路径。
  • 第二步:根据排查结果选择对应修复方案
    1. 优先推荐方案:升级关联依赖
      如果确认是旧版Jetpack WindowManager等官方AndroidX库带入的依赖,直接将对应依赖升级到1.1.0及以上的稳定版本即可,新版官方组件已经完全移除了对微软这个第三方库的依赖,改用AndroidX原生的窗口适配逻辑,不会再拉取这个冗余包。
    2. 无需双屏适配时直接排除依赖
      如果你不需要做Surface Duo类双屏设备的特殊适配,也不想升级现有依赖版本,可以在引入该传递依赖的对应依赖项中添加exclude规则,直接屏蔽这个包的拉取,示例配置如下:
      dependencies {
          // 示例:如果排查到是androidx.core:core-ktx带入的依赖,就在对应依赖项内加排除规则
          implementation('androidx.core:core-ktx:1.7.0') {
              exclude group: 'com.microsoft.device.display', module: 'display-mask'
          }
      }
      
    3. 临时兼容方案(不推荐长期使用)
      如果你必须保留当前旧版本依赖链路,可以在项目的repositories仓库配置中,补充微软官方维护的公开Maven源,该源托管了display-mask库的全量历史版本,可以正常拉取0.3.0版本的包。但该方案仅作临时救急用,长期还是建议升级或移除冗余依赖,避免后续其他第三方仓库停服引发同类编译问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:06:21