新版Android Studio中Gradle构建失败,找不到sqlite-framework-2.1.0.jar如何解决?
问题根因
所有构建失败的核心原因是Gradle无法拉取到androidx.sqlite:sqlite-framework:2.1.0依赖,3个任务执行异常都是该依赖拉取失败衍生的问题;另外你的app模块build.gradle存在配置冲突问题,也会引发构建异常。
解决方案
按照以下步骤依次操作即可解决:
- 修正build.gradle配置冲突
你当前app模块build.gradle的android块内同时配置了compileSdk 31和compileSdkVersion 30,defaultConfig块内同时配置了targetSdk 31和targetSdkVersion 30,版本不统一会导致依赖解析异常,直接删除重复的低版本配置即可,修改后android块的基础配置如下:
android { compileSdk 31 defaultConfig { applicationId "com.parsa.myapplication2" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } // 剩余原有配置不变,删掉额外的compileSdkVersion 30、buildToolsVersion '30.0.2'即可,compileSdk 31会自动适配匹配的buildTools版本,不需要手动指定旧版本 }
另外你dependencies块内重复添加了多次core-ktx、appcompat等相同依赖,直接删除重复的声明即可,不会影响功能。
- 添加国内镜像仓库兜底依赖拉取
打开项目根目录的settings.gradle(Android Studio Arctic Fox及以后版本均用该文件管理仓库配置,旧版本修改根目录build.gradle的allprojects->repositories块),在仓库列表最前面添加阿里云镜像,避免谷歌仓库访问失败导致依赖拉取不到:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { // 新增下面两行镜像配置,放在google()、mavenCentral()前面 maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } }
- 强制指定sqlite依赖版本
在app模块build.gradle的android块末尾添加如下配置,强制指定sqlite依赖版本,避免koin等第三方依赖传递拉取的版本无法找到:
configurations.all { resolutionStrategy.force 'androidx.sqlite:sqlite-framework:2.2.0' resolutionStrategy.force 'androidx.sqlite:sqlite:2.2.0' }
- 清理缓存重启构建
点击Android Studio顶部菜单File -> Invalidate Caches...,勾选清理文件系统缓存和本地历史,确认重启IDE;重启后依次点击Build -> Clean Project、Build -> Rebuild Project执行构建即可。
关于Gradle废弃特性的提示,完成上述修改后如果还有提示,逐步升级对应第三方依赖的版本即可,不影响本次构建正常运行。
内容的提问来源于stack exchange,提问作者Parsa Gh
相关产品推荐
相关产品推荐

