4 つの製品フレーバーを持つアプリがあります。は次のbuild.gradle
ようになります。
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.testing"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
flavor1 {
applicationId "com.flavor1"
}
flavor2 {
applicationId "com.flavor2"
}
flavor3 {
applicationId "com.flavor3"
}
flavor4 {
applicationId "com.flavor4"
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
フレーバーのソースセットを追加し、特定のフレーバーごとにいくつかのファイルを追加しました。
さらに、flavor1 でメインの sourceSet から除外するファイルを指定したいと考えました。
メインのsourceSetで除外するファイルmain/java/com/example/testing/
はそこにあります
- file1.java
- file2.java
- file3.java
- file4.java
各フレーバーで、これらから 1 つのファイルを除外したいと思います。しかし、私はフレーバーが残りのすべてを持っていることを望んでいます。例:
フレーバー 1 には、file2、file3、file4 が含まれている必要があります。
falvor2 には、file1、file3、file4 が必要です。
等
ご覧のとおり、ファイルはほとんどのフレーバーで共有されているため、それらすべてをフレーバーに入れたくありません。コードのレプリカになり、すべてのファイルのすべての変更をすべての異なるフレーバー ファイルに適用する必要があるからです。
私はこれを見ました:
sourceSets {
flavor1 {
java {
srcdir 'testing'
exclude '/file1'
}
}
しかし、それは私にはうまくいきません。私はそれを把握することはできません。
ありがとう }