Android开发:如何定位要求特定minCompileSdk的依赖项
定位高minCompileSdk依赖项的实操方法
- 执行Gradle依赖树查询命令
在项目根目录打开终端,执行对应模块的依赖导出命令,以app模块为例:- macOS/Linux 执行:
./gradlew :app:dependencies - Windows 执行:
gradlew.bat :app:dependencies
命令输出会展示该模块所有的直接、间接依赖和对应的版本号,你可以优先排查近期更新过、版本号为测试版(beta/rc)、或者属于androidx官方组件的依赖,这类依赖更新时最容易拉高minCompileSdk要求。
- macOS/Linux 执行:
- 直接扫描本地缓存的AAR元数据
Gradle下载的所有依赖默认存储在本地缓存目录~/.gradle/caches/modules-2/files-2.1下,你可以在这个目录全局搜索aar-metadata.properties文件,逐个打开搜索到的文件查看minCompileSdk字段的取值,取值为31的文件对应的包名和版本,就是触发报错的目标依赖。
定位androidx.core库的逻辑
该报错初期大范围爆发时,刚好是androidx.core系列组件1.7.0及以上版本发布的时间节点,这个版本官方正式将minCompileSdk要求提升到了31,而core库是绝大多数Android项目都会间接引入的通用基础依赖,很多开发者没有手动指定core库版本的情况下,依赖自动匹配到了最新高版本,结合更新时间线和通用依赖的引入规则,很容易定位到core库是触发问题的根源。
mvnrepository查不到minCompileSdk的说明
minCompileSdk是Android AAR格式特有的元数据字段,存储在AAR包内部的配置文件中,mvnrepository平台仅解析展示Maven包通用的公开元数据,不会针对AAR做内部配置的提取和展示,因此无法在该平台查询到对应信息。
内容的提问来源于stack exchange,提问作者AdrienM
相关产品推荐
相关产品推荐

