build.gradle第76行报expecting '}' found ''错误如何解决
Gradle构建报错
expecting '}', found ''排查修复方案 核心报错逻辑
这个报错虽然提示指向第76行的dependencies块闭合},但你贴出的dependencies块本身大括号是完全配对的,报错本质是Gradle解析到这个位置时,发现前面的语法结构没有正常闭合,和当前位置的}无法匹配,真正的出错点在第76行之前的代码里,不是这个}本身写错了。
排查修复步骤
- 先逐块检查dependencies段之前的所有代码结构:重点核对
android{}、defaultConfig{}、buildTypes{}、signingConfigs{}、repositories{}这类大括号包裹的配置块,数清楚每个左大括号{是否有对应的右大括号}配对,漏写闭合大括号是这类报错最常见的原因。 - 检查所有字符串的引号是否配对:逐行看前面的配置项,有没有单引号、双引号只写了开头没写结尾的情况,引号不闭合会打乱整个语法解析逻辑,最终在块结束位置抛出括号匹配错误。
- 排查不可见非法字符:如果脚本是从网页、第三方论坛复制的,很可能夹带零宽空格、全角标点(全角逗号、全角引号、全角括号)这类肉眼识别不了的非法字符,可以把报错位置附近几行的配置全部手动重打一遍,排除特殊字符干扰。
- 提前处理会导致后续编译失败的依赖冲突:你贴的依赖列表里同时存在AndroidX依赖和旧版
com.android.support支持库依赖,这两类库无法共存,就算括号问题修复后也会编译失败,直接删除以下两行旧版支持库依赖即可:
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:2.0.4'
另外你已经引入了com.google.firebase:firebase-messaging:23.0.5,旧版的com.google.firebase:firebase-iid:21.1.0早就被整合进firebase-messaging库,单独引入旧版本会触发依赖冲突,这行也可以直接删除。
- 如果手动核对括号效率太低,可以直接用Android Studio打开该build.gradle文件,点击任意一个左大括号,编辑器会自动高亮匹配的右大括号,哪个左大括号没有对应的高亮匹配项,就是哪个块漏写了闭合符号。
注意:Gradle的语法报错定位经常存在滞后性,解析器会持续向后读取代码直到遇到完全无法匹配的语法节点才抛出错误,所以不要只盯着报错提示指向的行排查,一定要往前追溯所有未闭合的结构。
内容的提问来源于stack exchange,提问作者Xasterz
相关产品推荐
相关产品推荐

