Android Gradle构建报错groovy.lang.MissingMethodException问题求助
问题根因
核心问题是混淆了项目级build.gradle和模块级build.gradle的职责与配置规范:
- 项目级build.gradle是项目全局配置入口,不应该声明
com.android.application插件,也不能包含android{}配置块、dependencies{}应用依赖配置,这些都属于模块级(通常是:app模块)build.gradle的专属内容 - 你当前两份build.gradle内容完全重复,把模块级配置错误写到了项目级文件中,导致Gradle解析项目级配置时找不到对应的
android()方法,触发MissingMethodException异常
修复步骤
1. 修正项目级build.gradle配置
清空项目级build.gradle的现有内容,替换为标准项目级配置:
// 项目级build.gradle buildscript { repositories { google() mavenCentral() } dependencies { // 适配compileSdk 31可使用7.0.4版本的Android Gradle插件,可根据实际需求调整版本 classpath "com.android.tools.build:gradle:7.0.4" classpath "com.google.gms:google-services:4.3.10" } } allprojects { repositories { google() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }
2. 修正模块级(:app)build.gradle配置
现有模块级配置框架可保留,只需修正两处冗余冲突问题:
- 删掉重复的依赖声明:你同时声明了两个版本的
androidx.appcompat:appcompat、两份重复的com.google.android.material:material,只保留稳定版本androidx.appcompat:appcompat:1.3.1和一份com.google.android.material:material:1.4.0即可 - 统一Dagger2版本:当前Dagger2的三个依赖分别使用了2.35.1、2.20、2.21三个不同版本,全部统一为同一版本(比如2.35.1),避免版本兼容冲突
3. 重置项目配置
修改完成后依次执行:
- 点击Android Studio顶部菜单栏
File -> Sync Project with Gradle Files同步配置 - 如果同步后仍有缓存异常,执行
Build -> Clean Project后再执行Rebuild Project即可
内容的提问来源于stack exchange,提问作者Esteban Rodriguez
相关产品推荐
相关产品推荐

