在Android Studio

时间:2018-05-18 13:11:46

标签: gradle android-gradle

在Android Studio项目中,我有不同的java模块,希望根据产品风格编译它们(即 flavor1 中的 feature1 feature2,feature3 flavor2 中的。还有一些通用代码,需要始终编译 这是我的build.gradle的一部分:

productFlavors {
    flavor1 {
        sourceSets {
            main.java.srcDirs += [
                      'path_to_my_dir/feature1'
            ]
        }
    }
    flavor2 {
        sourceSets {
            main.java.srcDirs += [
                     'path_to_my_dir/feature2',
                     'path_to_my_dir/feature3'
            ]
        }
    }
}
sourceSets {
    main.java.srcDir 'path_to_my_dir/common'
}

问题是所有功能都为任何风味进行编译 像这样的代码的不同变体也不起作用:

flavor2 {
        main.java.excludes += [
                 'path_to_my_dir/feature1'
        ]
    }
}

有关如何使其发挥作用的任何想法?

1 个答案:

答案 0 :(得分:0)

它的结构略有不同:

sourceSets {
    main {
        java.srcDir 'path_to_my_dir/common'
    }
    flavor1 {
        java.srcDirs += [
              'path_to_my_dir/feature1'
        ]
    }
    flavor2 {
        java.srcDirs += [
              'path_to_my_dir/feature2'
              'path_to_my_dir/feature3'
        ]
    }
}