2016-09-26 17 views
0

在Android中,我们想使一个应用程序建立与不同的应用程序ID依赖于预先安装的应用程序包。 因此,它包含有不同的applicationID设置构建gradle这个味道。如何使有条件的编译工作在Android上构建gradle这个

但我们不希望所有这些味道已经建立,我们只是想只能建基于预先安装的应用程序包的名称以节省某个时候生成服务器上的一个。

如果使用

task prepareA(dependsOn:['assembleADebug']){} 

task prepareB(dependsOn:['assembleBDebug']){} 

task prepareTest(dependsOn:['prepareA', 'prepareB']) {} 

然后叫prepareTest时,既prepareAprepareB将与这两个assembleADebug和执行assembleBDebug执行。

我只想生成prepareAprepareB基于一个条件检查(如果...)执行。

回答

0

我几个小时后发现实物指标调查的答案,那就是我们可以使用afterEvaluate方法,它会dependsOn运行前执行。

卸下预定dependsOn所述的prepareA和prepareB。

Then 

afterEvaluate { 
    if (isPackageInstalled(packageName)) {    
     tasks.findByName("prepareTest").dependsOn("prepareA") 
    } else { 
     tasks.findByName("prepareTest").dependsOn("prepareB") 
    } 
} 
相关问题