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

Android gradle.kts自定义source set不被识别,如何正确配置适配多商店分发?

错误原因

你收到该报错是因为Android Gradle插件(AGP)对Product Flavor对应的SourceSet有固定的命名匹配规则,不支持在productFlavors配置块内自定义命名SourceSet,你额外创建的p1SourceSet这类不符合规则的自定义SourceSet无法被AGP识别。

正确配置方案

你需要把SourceSet配置移到和productFlavors平级的android块下,直接匹配Flavor的名称即可,无需自定义SourceSet名称:

android {
    flavorDimensions("appStores")
    productFlavors{
        create("p1Flavor"){
            dimension = "appStores"
        }
        create("p2Flavor"){
            dimension = "appStores"
        }
        create("p3Flavor"){
            dimension = "appStores"
        }
    }

    // SourceSet 与 productFlavors 平级配置
    sourceSets {
        val p1Flavor by getting {
            java.srcDirs("src/main/java", "src/firstStoreDir")
        }
        val p2Flavor by getting {
            java.srcDirs("src/main/java", "src/secondStoreDir")
        }
        val p3Flavor by getting {
            java.srcDirs("src/main/java", "src/thirdStoreDir")
        }
    }
}

注意事项

  • 各商店源码目录下的updateStore.kt和rate.kt需要保证包名完全一致,main目录下仅存放公共接口/抽象类,不要放置同名实现类,避免类重复冲突。
  • 如果你不想手动配置srcDirs,也可以直接在src目录下创建和Flavor同名的源码目录:src/p1Flavor/java、src/p2Flavor/java、src/p3Flavor/java,AGP会自动识别这些目录为对应Flavor的源码目录,无需额外编写SourceSet配置。
  • 构建项目时选择对应Flavor的构建变体,即可自动编译对应商店目录下的实现逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:09:03