Android 如何读取任务的输出?

Android 如何读取任务的输出?,android,gradle,gradle-task,Android,Gradle,Gradle Task,我创建了一个任务来根据最新的git标记计算版本名。我基本上是将一个计算标记写入构建目录中的一个文件中。但是,当我试图从文件中读取此文本时,出现以下错误: /path/to/project/build/mediates/versioning/versionName.txt(无此类文件或目录) VersionNameTask.kt abstract class VersionNameTask : DefaultTask() { @get:OutputFile abstrac

我创建了一个任务来根据最新的git标记计算版本名。我基本上是将一个计算标记写入构建目录中的一个文件中。但是,当我试图从文件中读取此文本时,出现以下错误:

/path/to/project/build/mediates/versioning/versionName.txt(无此类文件或目录)

VersionNameTask.kt

abstract class VersionNameTask : DefaultTask() {

      @get:OutputFile
      abstract val outputFile: RegularFileProperty

      @TaskAction
      fun action() {
        outputFile.get().asFile.writeText(project.computeGitTag)
      }
    }
这就是我尝试读取生成文件内容的方式

private fun BaseAppModuleExtension.configureVersioning(project: Project) {
  onVariantProperties.withBuildType("release") {
    val versionNameTask = project.tasks.register<VersionNameTask>(
      "computeVersionNameFor${name.capitalize(Locale.US)}"
    ) {
      group = "versioning"
      outputFile.set(project.layout.buildDirectory.file("intermediates/versioning/versionName.txt"))
    }
    val mappedVersionNameTask = versionNameTask.map { it.outputFile.get().asFile.readText() }

    outputs.forEach { variantOutput ->
      variantOutput.versionName.set(mappedVersionNameTask)
    }
  }
}
private fun BaseAppModuleExtension.configureVersioning(项目:project){
onVariantProperties.withBuildType(“发布”){
val versionNameTask=project.tasks.register(
“computeVersionNameFor${name.capitalize(Locale.US)}”
) {
group=“版本控制”
outputFile.set(project.layout.buildDirectory.file(“mediates/versioning/versionName.txt”))
}
val mappedVersionNameTask=versionNameTask.map{it.outputFile.get().asFile.readText()}
outputs.forEach{variantOutput->
variantOutput.versionName.set(mappedVersionNameTask)
}
}
}
你能告诉我我做错了什么吗?我假设我在任务生成文件内容之前读取了文件内容,但为什么会发生这种情况?我正在使用
map
转换,它不应该先创建文件吗?我找不到任何有用的东西。谢谢