我正在开发的项目是为基于亚马逊的设备和Android而构建的。几乎95%的代码库在这两者之间是通用的。因此,我没有将这两个项目作为不同的项目,而是考虑将这两个项目放在一起使用产品风格。(如果有其他更好的解决方案,请告诉我)
但我面临的问题之一是build.gradle中的buildscript和android属性,我需要亚马逊和Android的不同值。 例如,我需要Android for Android
dependencies {
classpath 'com.android.tools.build:gradle:1.1.3'
}
这适用于亚马逊
dependencies {
classpath 'com.amazon.device.tools.build:gradle:1.0.0'
}
同样适用于compileSdkVersion和buildToolsVersion。
如果我需要为每个构建两个不同的build.gradles,我应该如何根据构建风格选择其中一个? (我不确定它是否真的可能)
如果没有,通过将所有内容放在同一个项目中,是否真的有更好的解决方案来解决这个问题。
提前致谢。
答案 0 :(得分:3)
这应该是一个评论,但它太长了 如果它不提供帮助,我会删除它。
据我所知,您的产品口味不能有build.gradle
但是,您应该能够调整buildscript
和compileSdkVersion
。
它不是那么干净但你可以使用类似的东西:
buildscript {
repositories {
jcenter()
mavenCentral()
}
if (condition) {
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0+'
}
} else if (condition) {
dependencies {
classpath 'com.amazon.device.tools.build:gradle:1.1.3'
}
}
}
android {
if (condition) {
compileSdkVersion 23
} else if (condition) {
compileSdkVersion "Amazon.com:Amazon Fire Phone SDK Addon:XX"
}
//...
}