建造一个项目的风味

owe*_*owe 5 android intellij-idea gradle android-studio

我想构建一个项目的不同风格(只有res文件夹有不同的内容),但它不起作用.

所以这是我的build.gradle文件(就像这个问题在Gradle中自定义旧的Android项目结构):

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project('<path>:actionbarsherlock')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

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

    buildTypes {
        debug {
            packageNameSuffix ".debug"
        }

            release{
            packageNameSuffix ".release"
            }

        android.sourceSets.flavor1 {
            res.srcDir = ['res_flavor1']
        }

        android.sourceSets.flavor2 {
            res.srcDir = ['res_flavor2']
        }

        productFlavors {
            flavor1 {
                packageName "androidstudio.test.flavor1"
            }
            flavor2 {
                packageName "androidstudio.test.flavor2"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的文件夹的结构(我想为每种风格改变一个布局):

my_project
    src
    res
    res_flavor1
    res_flavor2
Run Code Online (Sandbox Code Playgroud)

我没有看到构建变体的任何变化,所以当我导出apk的主目录(androidstudio.test)时.我的文件有什么问题?

我的Android Studio版本:0.1.3.

如果您需要更多信息,请说明什么,我会发布.谢谢!

[ 编辑 ]

@格雷格:

我在上面的问题中更改了res文件夹,但我的项目"out"文件夹中只有两个APK(路径:"out/production/androidstudio.test"):androidstudio.test.apk和androidstudio.test.unaligned .apk(项目和模块名称是:android.studio - 我在上面的问题中编辑了这个名字,否则它有点混乱:)).

应该自动生成不同的buildType,不是吗?为了生成它们,我去:运行 - >运行"androidstudio.test".

我也查看了android-studio的日志文件,但没有错误.

这是我的Package Explorer的截图,也许我在这里犯了一个错误? 在此输入图像描述

我真的不明白为什么味道没有建立.

Gre*_*reg 0

你想要设置res.srcDirs = ['res_flavor1']而不是resources.srcDir = ['res_flavor1']. 命名有点混乱,但“resources”目录与 Android 的“res”目录不同。