其他分享
首页 > 其他分享> > android-是否可以针对不同的产品口味使用不同的build.gradles?

android-是否可以针对不同的产品口味使用不同的build.gradles?

作者:互联网

我正在工作的项目是针对基于Amazon的设备以及Android都构建的.两者之间几乎有95%的代码库是相同的.因此,我没有将这两个项目作为不同的项目,而是考虑使用产品口味将这两个项目放在一起(请让我知道是否还有其他更好的解决方案)

但是我在这里面临的问题之一是build.gradle中的buildscript和android属性,在这里我需要为Amazon和Android使用不同的值.
例如对于Android我需要这个

依赖项{
            类路径’com.android.tools.build:gradle:1.1.3′
    }

这对于亚马逊

依赖项{
            classpath’com.amazon.device.tools.build:gradle:1.0.0′
    }

同样对于compileSdkVersion和buildToolsVersion也是如此.

如果我需要为每个两种不同build.gradles,我应该如何让获得基于构建味挑其中的一个? (我不确定这是否真的可能)

如果不是,是否真的有更好的解决方案,可以通过将所有内容都放在同一项目中来解决此问题.

提前致谢.

解决方法:

应该是一个评论,但是太长了.
如果无法提供帮助,我将删除它.

据我所知,您无法针对产品口味使用不同的build.gradle.
但是,您应该能够调节构建脚本和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"            
    }
  //...
}

标签:build-gradle,gradle,android,android-gradle-plugin
来源: https://codeday.me/bug/20191119/2039310.html