我在这个问题上寻求帮助的高低,但仍然找不到任何东西。
我开始使用新的构建系统构建和应用程序。我在这个项目中使用两种产品口味,免费和专业。 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文件结构,工作正常:
- 主 -java -memphic -孱 -游戏 -java文件
-free -java -memphic -孱 - 自由 -java文件
-pro -java -memphic -孱 -Pro -java文件
我想知道如何从主要活动的flavor源文件中引用一个类。我在主java文件中使用了以下代码来尝试引用免费的包类文件。
com.example.free.ClassFile.addObject();
这在构建免费版本时有效,因为它可以找到包;但是在构建专业版时,它无法找到包参考。
有没有办法可以在类文件中动态引用另一个包?因此,在编译专业版和免费版时,可以动态地找到包。我想不出办法做到这一点。
也有人知道如何使用新构建概念的好实用示例,因为这样的概念不在Gradle构建之外吗?
答案 0 :(得分:0)
正如tbruyelle所提到的那样回答我的问题,就是在整个构建文件中保留相同的包名称,以便它们在构建期间不会发生冲突。
然后通过Grade.build文件更改构建包名称。这将使每种风味在设备上部署时保持唯一。