Android Studio编译报No signature of method错误指向build.gradle问题问询
Android Studio Gradle编译报错解决
报错含义
你遇到的No signature of method: xxx.android() is applicable for argument types报错,本质是Gradle解析android{}配置块时,发现块内存在不符合Android Gradle Plugin(AGP)规则的配置语法,无法识别你传入的闭包参数,因此抛出方法签名不匹配的异常,本次的触发点是compileSdk version 31的错误写法。
修复方案
你错误地在compileSdk后多写了多余的version关键字,任选以下一种合法写法修改即可:
- 写法1(适配AGP 7.0及以上版本的简化写法):直接移除
version关键字
android { compileSdk 31 defaultConfig { applicationId "com.example.facedetection" minSdk 23 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
- 写法2(兼容所有AGP版本的标准写法):使用完整参数名
compileSdkVersion
android { compileSdkVersion 31 // 其余配置和上述一致,无需改动 }
修改完成后点击Android Studio右上角的「Sync Project with Gradle Files」按钮重新同步构建配置即可正常编译。
额外排查项
如果修改后仍存在同类报错,请检查项目根目录build.gradle文件中的AGP版本:
- 使用
compileSdk 31这种简化写法要求AGP版本≥7.0,同时对应的Gradle wrapper版本需要≥7.0,版本不匹配也会触发同类语法异常。
内容的提问来源于stack exchange,提问作者Dashhawk3
相关产品推荐
相关产品推荐

