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

如何复制项目中现有Build Variant并仅修改其名称?

如何创建与现有Build Variant完全一致的新变体(仅修改名称)

核心思路

Build Variant是Product Flavor与Build Type的组合,要创建和现有变体完全一致的新变体,只需复制原变体对应的Flavor或Build Type的配置,修改名称后重新组合即可。

具体步骤

1. 定位原变体的对应配置

先确定目标变体的组成:比如原变体是demoRelease,则对应demo(Product Flavor)和release(Build Type)。根据需求选择复制Flavor或Build Type。

2. 复制Product Flavor配置(创建同配置新Flavor)

在app模块的build.gradle(Groovy)或build.gradle.kts(Kotlin DSL)中,找到productFlavors块,复制原Flavor的所有配置,修改新Flavor的名称:

Groovy示例

android {
    // ...其他配置
    productFlavors {
        // 原Flavor配置
        demo {
            applicationIdSuffix ".demo"
            resValue "string", "app_name", "Demo App"
            versionNameSuffix "-demo"
            // 其他原配置如buildConfigField等
        }
        // 新Flavor,完全复制原配置,仅改名称
        demoCopy {
            applicationIdSuffix ".demo"
            resValue "string", "app_name", "Demo App"
            versionNameSuffix "-demo"
            // 完全复制原demo的所有配置项
        }
    }
}

Kotlin DSL示例

android {
    // ...其他配置
    productFlavors {
        create("demo") {
            applicationIdSuffix = ".demo"
            resValue("string", "app_name", "Demo App")
            versionNameSuffix = "-demo"
            // 其他原配置
        }
        create("demoCopy") {
            applicationIdSuffix = ".demo"
            resValue("string", "app_name", "Demo App")
            versionNameSuffix = "-demo"
            // 完全复制原demo的所有配置项
        }
    }
}

3. 复制Build Type配置(创建同配置新Build Type)

如果需要基于原Build Type创建新变体,找到buildTypes块,复制原Build Type的配置并修改名称:

Groovy示例

android {
    // ...其他配置
    buildTypes {
        // 原Build Type配置
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
            debuggable false
        }
        // 新Build Type,完全复制原配置
        releaseCopy {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
            debuggable false
        }
    }
}

Kotlin DSL示例

android {
    // ...其他配置
    buildTypes {
        release {
            isMinifyEnabled = true
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
            signingConfig = signingConfigs.getByName("release")
            isDebuggable = false
        }
        create("releaseCopy") {
            isMinifyEnabled = true
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
            signingConfig = signingConfigs.getByName("release")
            isDebuggable = false
        }
    }
}

4. 同步Gradle并验证

点击Android Studio右上角的Sync Project with Gradle Files按钮,同步完成后,在左侧Build Variants面板就能看到新的变体(比如demoCopyRelease或demoReleaseCopy),其配置与原变体完全一致。

额外注意事项

  • 如果原变体有专属资源/代码目录(比如src/demo/res、src/demo/java),若要新变体使用相同资源,可直接复制目录并改名(比如src/demoCopy/res),或通过sourceSets共享原目录资源:
    Groovy示例:
    sourceSets {
        demoCopy {
            res.srcDirs = ['src/demo/res', 'src/demoCopy/res']
            java.srcDirs = ['src/demo/java', 'src/demoCopy/java']
        }
    }
    
  • 若新变体需要后续微调,直接修改新Flavor/Build Type的配置即可,不会影响原变体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:06:12