Не удалось найти метод leftShift() для аргументов после обновления студии 3.4
После обновления студии 3.4
и версии Gradle до 5.1.1
я получил ошибку в своей задаче, так как не смог найти метод leftShift()
Моя задача:
task incrementBetaVersion << {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
Я получил ошибку для оператора левого сдвига <<
в строке.
Как устранить эту ошибку?
Ответы
Ответ 1
Чтобы устранить эту ошибку, измените <<
с помощью doLast
следующим образом.
task incrementBetaVersion {
doLast {
println("Incrementing Beta Version Number...")
incrementVersionNumber('BetaVersionNumber')
println("Incrementing Beta Version Number...")
incrementVersionName('BetaVersionName')
}
}
Левый оператор shitf представляет doLast { }
.
<< устарела в Gradle 4.x и удалена в Gradle 5.0
Более подробная информация здесь: https://discuss.gradle.org/t/could-not-find-method-leftshift-for-arguments-on-task-of-type-org-gradle-api-defaulttask/30614
Ответ 2
LeftShift()
<< (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
Ответ 3
Это произошло из-за того, что оператор Left Shift был заменен на 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')
}
}
Ответ 4
У меня была эта ошибка в проекте Kotlin, который использует MockMaker
чтобы высмеивать не окончательные классы.
Решение состоит в том, чтобы изменить старый синтаксис на новый:
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
и удаление <<
из сигнатуры задачи. Это работает для меня сейчас. Надеюсь, что это тоже для вас :-)
Ответ 5
Вы можете решить проблему, перейдя по этой ссылке: https://github.com/noveogroup/android-check