项目构建版本的不同变体

5
我希望构建不同口味的项目(只有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"
            }
        }
    }
}

我的文件夹结构(我只想为每个口味更改一个布局):

my_project
    src
    res
    res_flavor1
    res_flavor2

我没有在构建变体中看到任何更改,所以当我导出apk时,它就是主目录(androidstudio.test)下的。我的文件有什么问题?
我的Android Studio版本为0.1.3。
如果您需要更多信息,请告诉我需要什么,我会发布它。谢谢!
[编辑]
@Greg:
我在上面的问题中更改了res文件夹,但是我仍然只在项目“out”文件夹(路径:“out/production/androidstudio.test”)中获得两个APK文件:androidstudio.test.apk和androidstudio.test.unaligned.apk(项目和模块名称为:android.studio-我在上面的问题中编辑了这些名称,否则有点混乱 :))。
不同的buildTypes应该自动生成,是吗?并且要生成它们,我去:Run -> Run "androidstudio.test"。
我还查看了android-studio的日志文件,但没有错误。
这是我的Package Explorer的屏幕截图,也许我在这里犯了一个错误? enter image description here 我真的不明白为什么flavors没有被构建。
1个回答

0

你应该设置 res.srcDirs = ['res_flavor1'] 而不是 resources.srcDir = ['res_flavor1']。命名有点混淆,但是 "resources" 目录并不是 Android 的 "res" 目录。


嘿,Greg,感谢您的评论。我已经编辑了我的问题,请帮帮我。谢谢。 - owe
1
嘿,我解决了我的问题。我的操作系统是Win7(64位),我没有设置JDK_HOME变量,所以gradle什么也没做...@Greg感谢您的帮助,很抱歉我没有注意到真正的问题 :)。 - owe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接