更新Studio 3.4后,无法为自变量找到方法leftShift()

Bhu*_* BS 58 groovy android gradle build.gradle android-gradle-plugin

将Studio 3.4和Gradle版本更新到5.1.1我后,由于找不到方法leftShift(),我在执行任务时遇到了错误

我的任务:

task incrementBetaVersion << {
    println("Incrementing Beta Version Number...")
    incrementVersionNumber('BetaVersionNumber')
    println("Incrementing Beta Version Number...")
    incrementVersionName('BetaVersionName')
}
Run Code Online (Sandbox Code Playgroud)

<<在行中出现了左移运算符的错误。

如何解决这个错误?

Bhu*_* BS 109

为了解决这个错误,改变<<doLast这个样子。

task incrementBetaVersion  {
    doLast {
        println("Incrementing Beta Version Number...")
        incrementVersionNumber('BetaVersionNumber')
        println("Incrementing Beta Version Number...")
        incrementVersionName('BetaVersionName')
    }
}
Run Code Online (Sandbox Code Playgroud)

左shitf运算符表示doLast { }

<< 在Gradle 4.x中已弃用,在Gradle 5.0中已删除

从文档中:

<<任务定义不再有效。换句话说,您不能使用语法

task myTask << { …? }

改用该Task.doLast()方法,如下所示:

task myTask {
    doLast {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

此处的更多信息:https : //discuss.gradle.org/t/could-not-find-method-leftshift-for-arguments-on-task-of-type-org-gradle-api-defaulttask/30614

https://docs.gradle.org/current/userguide/upgrading_version_4.html#changes_5.0

  • 这是哪里 哪个文件? (2认同)
  • 我没有任何任务或&lt;&lt;仍然面临这个问题有人可以帮忙吗? (2认同)

Nik*_*dva 14

<<(LeftShift())运算符在4.x中已弃用,Gradle在5.x Gradle版本中已删除。

用于解决 Could not find method leftShift() for arguments on task of type org.gradle.api.DefaultTask

只需从Task中删除“ <<”并在其中添加方法 doLast{}

参考https://discuss.gradle.org/t/could-not-find-method-leftshift-for-arguments-on-task-of-type-org-gradle-api-defaulttask/30614/2

task incrementBetaVersion << {
   // your code
}
Run Code Online (Sandbox Code Playgroud)

task incrementBetaVersion {
   doLast {
      // your code
    }
}
Run Code Online (Sandbox Code Playgroud)


nav*_*nos 7

发生这种情况的原因是,左移运算符已被doLast {}代替。

<< has deprecated in 4.x and removed in 5.0 version
Run Code Online (Sandbox Code Playgroud)

现在您将不得不更改代码:

task incrementBetaVersion << {
    println("Incrementing Beta Version Number...")
    incrementVersionNumber('BetaVersionNumber')
    println("Incrementing Beta Version Number...")
    incrementVersionName('BetaVersionName')
}
Run Code Online (Sandbox Code Playgroud)

task incrementBetaVersion  {
    doLast {
        println("Incrementing Beta Version Number...")
        incrementVersionNumber('BetaVersionNumber')
        println("Incrementing Beta Version Number...")
        incrementVersionName('BetaVersionName')
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

解决这个错误非常简单。

只需替换<<doLast

请参阅下面的更新代码,今天我修复了我的cordova Android 项目。

task cdvPrintProps {
   doLast {
       //your code
   }
}
Run Code Online (Sandbox Code Playgroud)