Android Studio DEX错误::app:transformClassesWithMultidexlistForDebug执行失败
这种重复类的坑我可踩过不止一次,别着急,咱们一步步来搞定它:
第一步:定位重复的依赖来源
先搞清楚到底是哪个库重复引入了android.support.design。在Android Studio的Terminal里执行命令:# Mac/Linux环境 ./gradlew app:dependencies # Windows环境 gradlew.bat app:dependencies搜索输出内容里的
android.support.design,看看是不是存在多个不同版本,或者被第三方库间接引入的情况。第二步:强制统一依赖版本
找到冲突版本后,在项目根目录的build.gradle里添加版本统一策略,把所有support库的版本对齐:allprojects { repositories { // 你的仓库配置,比如google()、mavenCentral()之类的 } configurations.all { resolutionStrategy { // 替换成你项目实际使用的support版本,比如28.0.0 force 'com.android.support:design:28.0.0' force 'com.android.support:appcompat-v7:28.0.0' } } }很多时候第三方库会自带旧版support库,强制统一版本就能解决冲突问题。
第三步:彻底清理缓存(比普通clean更管用)
有时候缓存会残留旧的依赖文件,普通的Clean Project根本清不干净,得手动删除这些内容:- 删除项目根目录下的
.gradle文件夹 - 删除app模块里的
build文件夹 - 删除用户目录下的
.gradle/caches(Windows路径是C:\Users\你的用户名\.gradle\caches,Mac路径是~/Users/你的用户名/.gradle/caches)
删完后重启Android Studio,再执行Rebuild Project。
- 删除项目根目录下的
第四步:检查是否混用了Support库和AndroidX
如果你已经迁移到AndroidX了,绝对不能同时使用com.android.support:design和com.google.android.material:material。把所有Support库替换成对应的AndroidX库,比如把com.android.support:design换成com.google.android.material:material:1.5.0(版本可根据项目需求选择)。第五步:确认Multidex配置正确
确保app模块的build.gradle里配置没问题:android { defaultConfig { // 其他配置内容... multiDexEnabled true } } dependencies { // 如果用的是Support库,添加这个依赖 implementation 'com.android.support:multidex:1.0.3' // 如果用的是AndroidX,换成这个依赖 // implementation 'androidx.multidex:multidex:2.0.1' }要是你有自定义Application类,要么让它继承
MultiDexApplication,要么在attachBaseContext方法里添加这段代码:@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
按这个步骤走,基本能解决重复类导致的构建错误。
内容的提问来源于stack exchange,提问作者ToastyTeddy

