【问题标题】:product flavors, sources sets.Excluding files - android studio产品风味、来源集。不包括文件 - android studio
【发布时间】:2016-08-04 12:35:53
【问题描述】:

我有一个包含 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'

}

我已为风味添加了 sourceSets,并为每种特定风味添加了一些文件。

此外,我想指定哪些文件 从主 sourceSet 中排除 flavor1。

主sourceSet中要排除的文件在main/java/com/example/testing/里面有

  • file1.java
  • file2.java
  • file3.java
  • file4.java

在每种口味中,我想排除 1 个文件。但我希望味道拥有所有其余部分。示例:

flavor1 应该有:file2、file3、file4。

falvor2 应该有:file1、file3、file4。

等等

正如您所看到的,这些文件由大多数风格共享,所以我不想将它们全部放在风格中,因为它将是代码副本,并且每个文件中的每个更改都必须应用于所有不同的风格文件.

我看过这个:

sourceSets {
    flavor1 {
        java {
            srcdir 'testing'
            exclude '/file1'
        }
    }

但这对我不起作用。我想不通。

谢谢 }

【问题讨论】:

标签: android android-gradle-plugin build.gradle android-productflavors android-sourcesets


【解决方案1】:

有点晚,但可能对其他用户有用。

我认为一个不错的选择是将所有共享代码(或资源)放在一个或多个特定文件夹中,比如sharedfoo,然后使用 gradle 将它们添加到任何需要它的风格中。

productFlavors {
    flavor1 {
      applicationId "com.flavor1"
    }
    flavor2 {
      applicationId "com.flavor2"
    }
    flavor3 {
      applicationId "com.flavor3"
    }
    flavor4 {
      applicationId "com.flavor4"
    }
}
sourceSets {
    flavor1 { java.srcDirs = ['src/flavor1/java', 'src/sharedfoo/java'] }
    flavor2 { java.srcDirs = ['src/flavor2/java', 'src/sharedfoo/java'] }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2013-08-27
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多