Android Gradle插件从2.2.2升级4.1.3报android()方法签名错误如何解决
问题原因
该报错是由于Android Gradle Plugin(AGP)从2.2.2升级到4.1.3后,旧版本中的大量API被废弃、移除,原有配置写法不再兼容高版本AGP导致的android块解析失败。
修复步骤
- 首先确认版本匹配:AGP 4.1.3要求配套的Gradle版本为6.5~6.7.1,需在项目根目录的
gradle/wrapper/gradle-wrapper.properties文件中修改distributionUrl为对应版本,示例:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
同时确认根目录build.gradle中AGP版本声明正确:
dependencies { classpath "com.android.tools.build:gradle:4.1.3" // 其他插件依赖 }
- 修改自定义APK输出路径的配置:AGP 3.0+不再支持直接修改
output.outputFile,需调整为如下写法:
applicationVariants.all { variant -> def buildTypeName = variant.buildType.name variant.outputs.each { output -> output.outputFileName = "App-${buildTypeName}.apk" } variant.packageApplicationProvider.get().outputDirectory = new File("${project(':ProjectName').projectDir}/bin/") }
- 删除
android块下已被废弃的属性:移除enforceUniquePackageName false和dexOptions块中的dexInProcess false两行配置,上述属性在AGP 3.0+版本中已被完全移除,保留会导致解析失败。调整后的dexOptions为:
dexOptions { preDexLibraries false }
- 替换依赖声明关键字:AGP 3.0+废弃了
compile关键字,需替换为implementation,调整后的dependencies块:
dependencies { implementation fileTree(include: ['*.jar', '*.so'], dir: 'libs') implementation project(':Tracker') }
- 建议升级Java编译版本:AGP 4.1+默认支持Java 8,可将compileOptions调整为如下配置,避免编译兼容问题:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
- 检查buildToolsVersion版本:AGP 4.1.3要求buildToolsVersion最低为30.0.2,确认根目录中配置的
rootProject.buildToolsVersion符合版本要求。 - 完成所有修改后,点击Android Studio顶部菜单
File > Invalidate Caches / Restart清理缓存重启,再执行clean和assemble任务即可正常构建。
内容的提问来源于stack exchange,提问作者Bartek
相关产品推荐
相关产品推荐

