相关疑难解决方法(0)

在gradle中添加对特定productFlavor和buildType的依赖性

我想知道如何在gradle中为特定的productFlavor和buildType添加依赖项.例如,我有productFlavor free和构建类型release,如何添加对assembleFreeRelease任务的依赖?

我尝试了很多变种,但都没有效果.

例如我试过:

task('release', dependsOn: assembleProductionRelease) {
} 
// error: Could not find property 'assembleProductionRelease' on root project 'app'.
Run Code Online (Sandbox Code Playgroud)

要么:

task('release', dependsOn: 'assembleProductionRelease') {
}
Run Code Online (Sandbox Code Playgroud)

这里没有错误,但是为每种风味和构建类型执行任务,非常令人困惑.

android build gradle

14
推荐指数
3
解决办法
1万
查看次数

builg.gradle:如何仅在选定的风味上执行代码

我在我的 Android 项目 build.gradle 中声明了这个函数:

def remoteGitVertsion() {
  def jsonSlurper = new JsonSlurper()
  def object = jsonSlurper.parse(new URL("https://api.github.com/repos/github/android/commits"))
  assert object instanceof List
  object[0].sha
}
Run Code Online (Sandbox Code Playgroud)

还有这种味道:

android {
  ...
  productFlavors {
    internal {
      def lastRemoteVersion = remoteGitVersion()
      buildConfigField "String", "LAST_REMOTE_VERSION", "\"" + lastRemoteVersion + "\""
    }
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

现在,由于 gradle 声明性质,每次构建项目时都会执行 remoteGitVersion 函数,无论构建风格是内部的还是其他什么都无关紧要。因此,github API 调用配额已被消耗,过了一会儿,我收到了一条很好的禁止消息。

我怎样才能避免这种情况?是否可以仅在所选风味正确时才执行该功能?

android gradle

5
推荐指数
1
解决办法
1880
查看次数

标签 统计

android ×2

gradle ×2

build ×1