You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Android Studio后生成Signed APK提示0 build variants无输出文件

问题原因
  • Android Studio 2021.1.1 Canary 12属于预览版,存在和AGP 7.0.2的兼容缺陷:签名打包向导的变体识别逻辑有bug,当项目配置了productFlavors、flavorDimension或子模块依赖配置较复杂时,会出现选中的变体匹配失败的问题,直接跳过打包流程。
  • AGP 7.0+升级了签名配置校验逻辑:如果选中的build variant对应的buildType+productFlavor组合未显式配置有效的signingConfig,或signingConfig的storeFile路径、密钥参数存在动态赋值、路径解析失效的情况,AGP会静默跳过该变体的打包,不会抛出显式错误,仅返回0变体匹配的提示。
  • 旧构建缓存失效:升级AS和AGP后未清理旧的构建缓存,打包流程读取了缓存中失效的变体配置,误判断目标变体不需要执行构建,直接结束流程。
选择指定build variant生成Signed APK的正确逻辑
  • 打包前先打开AS侧边栏的Build Variants面板,确认目标模块对应的build variant已提前选中,不要完全依赖签名打包向导内的选择项,AGP 7.0+会优先读取该面板的变体锁定配置。
  • 进入Generate Signed Bundle / APK向导后,先填写正确完整的签名配置信息,进入变体选择页后,除了勾选目标build variant,还要确认Signature Versions项至少勾选了V2签名,AGP 7.0+默认不支持仅V1签名的release打包配置,未勾选V2会被判定为无效配置跳过打包。
  • 确保项目build.gradle中目标variant对应的配置已显式关联signingConfig,不要使用动态赋值、if判断延迟赋值的逻辑配置签名信息,参考合法配置:
android {
    // 先定义签名配置
    signingConfigs {
        release {
            storeFile file("./your-release-key.keystore")
            storePassword "你的存储密码"
            keyAlias "你的密钥别名"
            keyPassword "你的密钥密码"
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            // 显式关联签名配置,不要放在if判断等动态逻辑块内
            signingConfig signingConfigs.release
        }
    }
}
  • 首次触发0变体提示后,先执行Build -> Clean Project清理构建缓存,再执行File -> Invalidate Caches... -> Invalidate and Restart清理AS的无效缓存配置,重启后再重新走打包流程即可。

内容的提问来源于stack exchange,提问作者Anael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:24:04