4

我已经在这个问题上到处寻找帮助,但仍然找不到任何东西。

我开始使用新的构建系统构建和应用程序。我在这个项目中使用了两种产品风格,免费和专业。gradle.build 文件如下:

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

    repositories {
        mavenCentral()
    }

    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"

        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 17
        }

        productFlavors {
            free {
                packageName "com.example.free"
                buildConfig "public static final Boolean versionPro = true;"
            }

            pro {
                packageName "com.example.pro"
                buildConfig "public static final Boolean versionPro = false;"
            }
        }
    }

    dependencies {
        compile 'com.android.support:support-v4:13.0.+'
    }

我已经像这样构建了 src 文件结构,效果很好:

-main -java -memphic -dodger -game -java 文件

-free -java -memphic -dodger -free -java 文件

-pro -java -memphic -dodger -pro -java 文件

我想知道如何从主要活动的风味源文件中引用一个类。我在主 java 文件中使用了以下代码来尝试引用免费包类文件。

com.example.free.ClassFile.addObject();

这在构建免费版本时有效,因为它可以找到包;但是,在构建专业版时,它找不到包参考。

有没有办法可以在类文件中动态引用另一个包?因此,在编译专业版和免费版时,可以动态找到该软件包。我想不出办法。

也有人知道如何使用新的构建概念的很好的实际示例,因为像这样的概念在 Gradle 构建之外没有涵盖?

4

1 回答 1

0

回答 tbruyelle 提到的我的问题,是在整个构建文件中保持相同的包名称,以便它们在构建过程中不会发生冲突。

然后通过 Grade.build 文件更改构建包名称。这将使每种风味在设备上部署时保持独特。

于 2013-08-15T20:54:05.030 回答