android - 项目的构建风格

标签 android intellij-idea gradle android-studio

我想构建不同风格的项目(只有 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 的屏幕截图,也许我在这里犯了一个错误? enter image description here

我真的不明白为什么没有构建 flavor 。

最佳答案

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

关于android - 项目的构建风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108242/

相关文章:

java - 我在哪里可以找到tomcat本地部署的 war ?

maven - 如何使用 Lombok 消除 Mavenized 项目 Intellij 中的重复类错误

java - 是否可以从 dto 和 User 类创建一个 newUser ?

android - Gradle Android Studio 集成

java - Google API 的 AUTH_TOKEN TYPE

android - 源附件不包含文件 Layoutinflater.class 的源

java - 我需要安装 opencv 并在 Maven+IntelliJ(在 Windows 和 macOS/OSX 上)中通过 java 使用它。

android - Facebook 登录按钮在显示新 View 之前更改其在 'log out' 中的文本

android - "return is not allowed here"在 kotlin lambda 中返回时

java - 为什么我在 IntelliJ 中收到 Gradle 配置构建错误 junit5?