Android Studio生成签名APK时报错:Expected a name but was STRING
解决签名APK生成时的
Expected a name but was STRING错误 这个错误本质是APK签名流程中解析版本信息(versionName)时遇到了格式或语法问题,结合你提供的配置,我们可以从以下几个方面排查修复:
1. 先修复项目级build.gradle的语法错误
你提供的allprojects块里的Maven仓库配置存在语法不完整的问题——缺少闭合的大括号,同时建议补充常用的仓库源避免依赖拉取失败,修正后的代码如下:
buildscript { repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { maven { url "https://oss.sonatype.org/content/repos..." } google() jcenter() } }
2. 检查模块级(app/build.gradle)的versionName与签名配置
错误提示明确指向$[0].apkInfo.versionName,说明解析版本名称时出现异常,常见原因和修复方式:
- 确保
versionName是合法字符串:versionName必须用双引号包裹,不能是纯数字或格式错误的内容,示例正确配置:android { defaultConfig { versionName "1.0.0" // 这里必须是双引号包裹的合法版本字符串 // 其他默认配置... } } - 检查签名配置的语法完整性:如果你的release签名配置存在引号未闭合、路径错误等问题,也可能触发这类解析错误,确保签名配置类似这样:
android { signingConfigs { release { storeFile file("your-release-keystore.jks") storePassword "your-store-password" keyAlias "your-key-alias" keyPassword "your-key-password" } } buildTypes { release { signingConfig signingConfigs.release // 其他release构建配置... } } }
3. 清理并重新构建项目
完成上述修改后,执行以下操作确保配置生效:
- 点击Android Studio顶部菜单栏的
Build > Clean Project - 接着执行
Build > Rebuild Project - 最后再尝试生成签名APK
如果问题仍然存在,考虑升级你的Gradle插件版本(当前3.0.1版本较老旧),但升级前请确认项目依赖与新版本的兼容性。
内容的提问来源于stack exchange,提问作者Kisan Thapa
相关产品推荐
相关产品推荐

