Flutter构建APK报错:找不到com.android.support:multidex:2.0.1依赖
问题根因
构建失败核心是依赖解析异常,具体原因有三点:
- 手动引入的
com.android.support:multidex:2.0.1属于已停止维护的旧版Android Support Library,原托管仓库jcenter已正式关停,Google Maven仓库对高版本编译配置下的旧support库访问存在限制,无法正常拉取。 - 项目配置的compileSdkVersion为31,该版本及以上强制要求使用AndroidX系列依赖,旧support库依赖会直接出现解析冲突。
- 根build.gradle的仓库配置未添加mavenCentral,缺失主流依赖的拉取源。
修复步骤
1. 替换Multidex依赖为AndroidX版本
打开app目录下的build.gradle,修改dependencies块内容:
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // 删除旧版support库的multidex依赖 // implementation 'com.android.support:multidex:2.0.1' // 替换为AndroidX版本 implementation 'androidx.multidex:multidex:2.0.1' implementation 'com.google.android.gms:play-services-tagmanager:17.0.0' }
找到android目录下的gradle.properties文件(不存在则新建),在文件末尾添加两行配置开启AndroidX兼容:
android.useAndroidX=true android.enableJetifier=true
Jetifier会自动将项目中所有间接依赖的旧support库转换为AndroidX版本,避免后续出现同类依赖冲突。
2. 修正仓库配置
打开android根目录下的build.gradle,修改所有repositories块,添加mavenCentral源,移除已关停的jcenter源:
buildscript { ext.kotlin_version = '1.6.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.1.0' } } allprojects { repositories { google() mavenCentral() } }
其余配置保持不变即可。
3. 清理缓存重新构建
在项目根目录依次执行以下命令,清除旧构建缓存后重新编译:
flutter clean cd android ./gradlew clean cd .. flutter pub get flutter run
补充说明
- 如果项目存在自定义Application类,需要将继承的父类从旧版
android.support.multidex.MultiDexApplication替换为androidx.multidex.MultiDexApplication,否则运行时会出现multidex相关异常。 - 如果后续编译时提示play-services-tagmanager依赖冲突,可将该依赖升级到最新兼容版本,适配compileSdk 31的配置要求。
- 若将minSdkVersion提升到21及以上,Android系统原生支持multidex,无需额外引入multidex依赖,也不需要做相关配置。
内容的提问来源于stack exchange,提问作者sonalika
相关产品推荐
相关产品推荐

