我想构建不同风格的项目(只有 res 文件夹有不同的内容),但它不起作用。
所以这是我的 build.gradle 文件(就像这个问题 Custom old Android project structure in Gradle ):
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。
如果您需要更多信息,请说出来,我会发布。 谢谢!
[编辑]
@格雷格:
我在上面的问题中更改了 res 文件夹,但我的项目“out”文件夹(路径:“out/production/androidstudio.test”)中仍然只有两个 APK:androidstudio.test.apk 和 androidstudio。 test.unaligned.apk(项目和模块名称是:android.studio - 我在上面的问题中编辑了这个名称,否则它有点困惑:))。
不同的 buildTypes 应该自动生成,不是吗?为了生成它们,我转到:运行 -> 运行“androidstudio.test”。
我也查看了android-studio的日志文件,没有报错。
这是我的 Package Explorer 的屏幕截图,也许我在这里犯了一个错误?
我真的不明白为什么没有构建 flavor 。
最佳答案
您想设置 res.srcDirs = ['res_flavor1']
而不是 resources.srcDir = ['res_flavor1']
。命名有点困惑,但“resources”目录与 Android 的“res”目录不同。
关于android - 项目的构建风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108242/