1

我有一个 gradle.build 可以很好地实现主要目标。我想为蒙皮版本添加风味。我已将它们添加到 gradle build 但我不明白我应该将另一个版本的文件放在哪里,在哪个文件夹中以及它应该是什么名称?让我们考虑一个例子:主包是 com.example.app,项目结构对 android app 来说是通用的(我在 sourceSets 中做)。据我了解,我应该创建文件夹(不是一组子文件夹) com.example.app.flavor 并放入已经包含主项目文件的 \res 但它不起作用;当我构建 assembleFlavorDebug 时不起作用 - 构建了 apk 但它包含主应用程序,但风味没有变化

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-io:commons-io:2.4'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
    compile 'com.google.android.gms:play-services:3.2.+@aar'
    compile project(':ViewPagerIndicator')
    compile project(':AndroidHorizontalListView')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.0"

    productFlavors {
        app {
            packageName="com.example.app"
        }
        flavor {
            packageName="com.example.app.flavor"
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')


        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

    signingConfigs {
        debug {
            storeFile file('../debug.keystore')
        }
    }
4

1 回答 1

3

您应该创建一个名为 的子文件flavorsrcflavor子文件夹的结构与以下结构相同main

  • java - 包含所有 .java 源文件
  • res - 包含 Android 资源子文件夹(可绘制、布局、值等)
  • AndroidManifest.xml
于 2014-06-09T18:11:36.163 回答