Android Studio Gradle构建变体

4
我有困难理解Android Studio中的Build Flavors。我试图实现一个简单的目标:使用一个小的代码更改构建2个签名APK。 "pro" APK只是在res/layout/中有一个不同的drawer.xml。 我已经阅读了文档和StackOverflow上的一些内容,但我没有看到我的build.gradle更改发生任何事情。当前的build.gradle文件如下:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.+'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
    compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 17
    }

    productFlavors {
        lite {
            packageName = 'com.mikebdev.refuel'
        }
        pro {
            packageName = 'com.mikebdev.refuelpro'
        }
    }

    sourceSets{
        android.sourceSets.pro {
            res.srcDirs = ['src/main/res_pro']
        }
    }
}

我创建了一个新文件夹:
/src/main/res_pro/layout/drawer.xml

我在这里做错了什么?

编辑

我更新了我的build.gradle文件。

由于其他不稳定因素,我重置了整个Android Studio之后,现在能够在左下角选择我的构建变体(lite-debug,lite-release,pro-debug,pro-release)。为什么甚至是那些debug和release变量?

现在看起来它似乎可以正常工作了。

我在下面添加了一个答案。

3个回答

6

在重置整个Android Studio后,由于一些其他不稳定因素,我现在能够在左下角选择我的构建变量(lite-debug、lite-release、pro-debug、pro-release)。甚至有这些debug和release的变量?

我创建了一个带有模块的全新项目,并将我从以前从Eclipse导出的旧项目中复制并粘贴了所有内容。

现在它可以工作了。

我的Android Studio之前有点崩溃。比应该有更多的崩溃,一些奇怪的行为等等。


1
你的问题在于将文件放置在/src/main/res_pro/layout/drawer.xml而没有在gradle中进行设置。你创建的风味的默认位置应该是:
/src/pro/res/layout/drawer.xml

0
使用此构建脚本,您正在使用构建类型和风味。如果要更改 XML 文件,则只需要使用风味。尝试删除 buildTypes 并将 productFlavor 块用作 android 的子级。将 pro 风味的 res 文件夹的更改放入 sourceSets 块中,紧随主 sourceSet 的所有更改之后。

好的,我刚刚发现了可能是所有问题的根源。 [PROJECT] 没有被 Gradle 支持。这怎么可能?我按照文档中描述的从 Eclipse 导入了项目。我该如何解决这个问题? - mike.b93
1
请查看此答案。也许与您的问题无关,但您应该使用“gradle:0.4.3”作为当前版本或“gradle:0.4.+”以始终获取最新版本。 - rivare
我的Android Studio出了点问题,所以我重新安装了它。现在Gradle似乎完全崩溃了,哈哈。 - mike.b93
我应该在哪里设置“Gradle Home”?Android Studio似乎找不到它,我也找不到任何相关的信息。 - mike.b93
最好使用Gradle Wrapper而不是指向已安装的Gradle,这样您甚至不需要安装Gradle。 - user486646

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