升级AGP至8.2.0后React Native项目遇Gradle DSL'release()'方法未找到问题
解决AGP 8.2.0升级后
Gradle DSL method not found: 'release()'问题 AGP 8.x对Gradle DSL语法做了严格限制,加上React Native生态部分依赖还未适配新规范,很容易出现这个报错,以下是实测有效的修复方案:
修正buildTypes配置语法
旧版本AGP允许带括号的写法release(),但AGP 8.0+只支持无括号的闭包写法。检查项目中所有build.gradle(包括模块级)文件,把:buildTypes { release() { // 你的配置 } }改成:
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 其他原有配置 } }修复第三方依赖的过时语法
部分React Native第三方库的gradle脚本还在使用project.android.buildTypes.release()这种写法,AGP 8.x不再支持。找到报错对应的依赖模块(看Gradle报错堆栈定位),将其中的:android.buildTypes.release().apply { /* 配置内容 */ }替换为:
android.buildTypes.getByName("release").apply { /* 配置内容 */ }确认React Native版本兼容性
React Native 0.72及以上才正式支持AGP 8.x,如果你的RN版本低于这个版本,要么先升级RN到兼容版本,要么降级AGP到对应支持的版本(比如RN 0.71支持AGP 7.4)。清理缓存重新同步
执行命令清理Gradle缓存,避免旧配置干扰:./gradlew clean ./gradlew build --refresh-dependencies之后在Android Studio里点"Sync Project with Gradle Files"完成同步。
内容的提问来源于stack exchange,提问作者Ben Coffin
相关产品推荐
相关产品推荐

