更新 studio 3.4 后找不到参数的方法 leftShift()
Could not find method leftShift() for arguments after updating studio 3.4
将工作室 3.4
和 Gradle 版本更新到 5.1.1
后,我在任务中遇到错误 Could not find method leftShift()
我的任务:
task incrementBetaVersion << {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
我得到了行中左移运算符 <<
的错误。
如何解决这个错误?
要解决此错误,请像这样将 <<
更改为 doLast
。
task incrementBetaVersion {
doLast {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
}
左移运算符代表doLast { }
.
<<
was deprecated in Gradle 4.x and removed in Gradle 5.0
来自文档:
任务定义的 <<
不再有效。换句话说,你不能使用语法
task myTask << { … }
.
改为使用 Task.doLast()
方法,如下所示:
task myTask {
doLast {
...
...
}
}
https://docs.gradle.org/current/userguide/upgrading_version_4.html#changes_5.0
我在使用 MockMaker
模拟非最终 类 的 Kotlin 项目中遇到了这个错误。
解决方案是将旧语法更改为新语法:
task createTestResources {
description = "Allows Mocking non-final classes and data classes in a Kotlin project"
doLast {
def mockMakerFile = new File("$projectDir/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker")
if (System.env.MOCK_MAKER != null) {
logger.info("Using MockMaker ${System.env.MOCK_MAKER}")
mockMakerFile.parentFile.mkdirs()
mockMakerFile.createNewFile()
mockMakerFile.write(System.env.MOCK_MAKER)
} else {
logger.info("Using default MockMaker")
}
}
}
请注意,一些内容已更改,例如包含 doLast
块,并从任务签名中删除 <<
。它现在对我有用。希望它也适合你:-)
只需从任务中删除“<<”并在 doLast{}
中添加您的代码
对于Could not find method leftShift() for arguments on task of type org.gradle.api.DefaultTask
的解决方案
task incrementBetaVersion << {
// your code
}
到
task incrementBetaVersion {
doLast {
// your code
}
}
<< (LeftShift()
) operator is deprecated in 4.x Gradle
and Removed in 5.x Gradle
Version.
发生这种情况是因为左移运算符已被 doLast { } 取代。
<< has deprecated in 4.x and removed in 5.0 version
现在您必须更改代码:
task incrementBetaVersion << {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
至
task incrementBetaVersion {
doLast {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
}
解决这个错误很简单。
只需将 <<
替换为 doLast
查看下面更新的代码,今天我修复了我的 cordova Android 项目。
task cdvPrintProps {
doLast {
//your code
}
}
将工作室 3.4
和 Gradle 版本更新到 5.1.1
后,我在任务中遇到错误 Could not find method leftShift()
我的任务:
task incrementBetaVersion << {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
我得到了行中左移运算符 <<
的错误。
如何解决这个错误?
要解决此错误,请像这样将 <<
更改为 doLast
。
task incrementBetaVersion {
doLast {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
}
左移运算符代表doLast { }
.
<<
was deprecated in Gradle 4.x and removed in Gradle 5.0
来自文档:
任务定义的<<
不再有效。换句话说,你不能使用语法
task myTask << { … }
.
改为使用 Task.doLast()
方法,如下所示:
task myTask {
doLast {
...
...
}
}
https://docs.gradle.org/current/userguide/upgrading_version_4.html#changes_5.0
我在使用 MockMaker
模拟非最终 类 的 Kotlin 项目中遇到了这个错误。
解决方案是将旧语法更改为新语法:
task createTestResources {
description = "Allows Mocking non-final classes and data classes in a Kotlin project"
doLast {
def mockMakerFile = new File("$projectDir/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker")
if (System.env.MOCK_MAKER != null) {
logger.info("Using MockMaker ${System.env.MOCK_MAKER}")
mockMakerFile.parentFile.mkdirs()
mockMakerFile.createNewFile()
mockMakerFile.write(System.env.MOCK_MAKER)
} else {
logger.info("Using default MockMaker")
}
}
}
请注意,一些内容已更改,例如包含 doLast
块,并从任务签名中删除 <<
。它现在对我有用。希望它也适合你:-)
只需从任务中删除“<<”并在 doLast{}
中添加您的代码
对于Could not find method leftShift() for arguments on task of type org.gradle.api.DefaultTask
task incrementBetaVersion << {
// your code
}
到
task incrementBetaVersion {
doLast {
// your code
}
}
<< (
LeftShift()
) operator is deprecated in 4.xGradle
and Removed in 5.xGradle
Version.
发生这种情况是因为左移运算符已被 doLast { } 取代。
<< has deprecated in 4.x and removed in 5.0 version
现在您必须更改代码:
task incrementBetaVersion << {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
至
task incrementBetaVersion {
doLast {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
}
解决这个错误很简单。
只需将 <<
替换为 doLast
查看下面更新的代码,今天我修复了我的 cordova Android 项目。
task cdvPrintProps {
doLast {
//your code
}
}