我很努力地寻找关于这个问题的帮助,但仍然找不到任何有用的信息。
我正在使用新的构建系统开始构建一个应用程序。在这个项目中,我使用了两个产品口味:免费和专业版。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文件
我想知道如何从主活动引用来自flavor源文件的类。 我已经在主Java文件中使用了以下代码尝试引用free包类文件。
com.example.free.ClassFile.addObject();
在构建免费版本时,它可以找到该包,因此有效;但是在构建专业版时,它无法找到该包引用。
有没有一种方法可以动态地引用另一个包中的类文件? 因此,在编译pro和free版本时可以动态地找到该包。 我想不出一种方法来实现它。
还有人知道哪里有很好的实际示例以使用新的构建概念吗? 像这样的概念在Gradle构建外部并没有涉及。