升级Android Studio Flamingo后签名App Bundle失败及Gradle报错求助
第一步:解决Java 17工具链缺失问题
这是导致./gradlew bundleRelease失败的直接原因,先修复这个才能正常编译和签名:
确认本地Java 17安装状态
打开终端执行:java -version javac -version如果输出不是Java 17,打开Android Studio的
SDK Manager→SDK Tools,勾选「Show Package Details」,找到并安装OpenJDK 17(通常在Android SDK Build-Tools分类下)。配置Gradle自动下载工具链
在项目根目录的settings.gradle(或settings.gradle.kts)中添加工具链仓库配置:
Groovy版本:pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } enableFeaturePreview("VERSION_CATALOGS") toolchainManagement { repositories { mavenCentral() google() } }Kotlin版本:
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } enableFeaturePreview("VERSION_CATALOGS") toolchainManagement { repositories { mavenCentral() google() } }强制指定本地Java路径(备选)
如果自动检测仍失败,在项目根目录的gradle.properties中添加本地Java 17的路径:org.gradle.java.home=/path/to/java17例如Android Studio自带的JDK路径:
- Mac:
/Applications/Android Studio.app/Contents/jbr/Contents/Home - Windows:
C:\Program Files\Android\Android Studio\jbr
- Mac:
第二步:修复App Bundle签名异常问题
工具链问题解决后,处理签名失效的问题:
检查模块签名配置
打开模块的build.gradle(或build.gradle.kts),确认release构建类型已关联正确的签名配置:
Groovy版本:android { signingConfigs { release { storeFile file("your-keystore.jks") storePassword "你的密钥库密码" keyAlias "你的密钥别名" keyPassword "你的密钥密码" } } buildTypes { release { signingConfig signingConfigs.release // 其他构建配置 } } }Kotlin版本:
android { signingConfigs { create("release") { storeFile = file("your-keystore.jks") storePassword = "你的密钥库密码" keyAlias = "你的密钥别名" keyPassword = "你的密钥密码" } } buildTypes { getByName("release") { signingConfig = signingConfigs.getByName("release") // 其他构建配置 } } }清理缓存后重新生成
执行命令清理项目缓存:./gradlew clean重启Android Studio,再通过
Build > Generate Signed App Bundle重新生成,确保所有输入的密钥信息正确。手动签名(备选)
如果AS生成的bundle仍未签名,先生成未签名bundle:./gradlew bundleReleaseUnsigned再用
apksigner手动签名:apksigner sign --ks your-keystore.jks --ks-key-alias your-key-alias app/build/outputs/bundle/release/app-release-unsigned.aab签名完成后,直接上传该文件到Play Console。
内容的提问来源于stack exchange,提问作者Jéluchu

