回退Gradle至3.0.1后生成签名APK报错:Expected a name but was STRING
解决Gradle回退到3.0.1后生成签名APK的JSON格式错误
这个Expected a name but was STRING at line 1 column 99 path $[0].apkInfo.versionName的错误我帮不少开发者排查过,本质是回退Gradle插件版本后,高版本留下的缓存或配置文件格式和3.0.1不兼容,导致JSON解析失败。下面是一步步的解决方案:
1. 彻底清理残留缓存文件
Gradle回退版本后,旧缓存里还留着3.1.1的配置信息,这是最常见的诱因:
- 点击Android Studio工具栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 手动删除项目根目录的
.gradle文件夹,以及app模块下的build文件夹,彻底清干净旧缓存
2. 检查签名配置的格式正确性
打开app/build.gradle,确认signingConfigs的写法是3.0.1支持的标准格式,避免使用高版本的简化写法。比如标准写法示例:
signingConfigs { release { storeFile file("your-keystore-path.jks") storePassword "your-store-password" keyAlias "your-key-alias" keyPassword "your-key-password" } }
如果是从gradle.properties引用变量,要确保变量定义和引用方式无错误:
在gradle.properties中定义:
RELEASE_STORE_FILE=my-keystore.jks RELEASE_STORE_PWD=123456 RELEASE_KEY_ALIAS=my-key RELEASE_KEY_PWD=123456
然后在build.gradle中正确引用:
signingConfigs { release { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PWD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PWD } }
注意不要添加多余的引号,3.0.1版本对变量引用的格式要求相对严格。
3. 重新同步Gradle配置
回退版本后一定要点击工具栏的Sync Project with Gradle Files按钮,确保所有配置都同步到3.0.1版本的规则中。如果同步时弹出错误,优先解决这些基础问题再尝试生成签名APK。
4. 重新执行签名APK生成流程
如果上述步骤都无效,建议放弃之前的缓存配置,重新走一遍生成流程:
- 点击
Build→Generate Signed Bundle/APK - 重新选择密钥库文件,一步步输入密码和别名,确保每一步信息准确,不要复用之前的缓存配置
内容的提问来源于stack exchange,提问作者user9562014
相关产品推荐
相关产品推荐

