Nie można znaleźć metody leftShift () dla argumentów po aktualizacji studio 3.4

Po aktualizacji studio 3.4 i wersji Gradle do 5.1.1 otrzymałem błąd w moim zadaniu, ponieważ nie można znaleźć metody leftShift()

Moje zadanie:

task incrementBetaVersion << {
    println("Incrementing Beta Version Number...")
    incrementVersionNumber('BetaVersionNumber')
    println("Incrementing Beta Version Number...")
    incrementVersionName('BetaVersionName')
}

Dostałem błąd operatora lewej zmiany << w linii.

Jak rozwiązać ten błąd?

Author: Bhuvanesh BS, 2019-04-22

5 answers

Aby rozwiązać ten błąd, Zmień << na doLast w ten sposób.

task incrementBetaVersion  {
    doLast {
        println("Incrementing Beta Version Number...")
        incrementVersionNumber('BetaVersionNumber')
        println("Incrementing Beta Version Number...")
        incrementVersionName('BetaVersionName')
    }
}

Lewy operator przesunięcia reprezentuje doLast { }.

<< został sklasyfikowany na 4.x i usunięte w Gradle 5.0

Od Docs:

<< dla definicji zadań już nie działa. Innymi słowy, nie można używać składni

task myTask << { …​ }.

Użyj zamiast tego metody Task.doLast(), w następujący sposób:

task myTask {
    doLast {
        ...
        ...
    }
}

Więcej informacji proszę.: 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

 225
Author: Bhuvanesh BS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-26 15:50:59

Po Prostu Usuń "doLast{}

Dla roztworu Could not find method leftShift() for arguments on task of type org.gradle.api.DefaultTask

task incrementBetaVersion << {
   // your code
}

Do

task incrementBetaVersion {
   doLast {
      // your code
    }
}

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

LeftShift()) operator jest przestarzały w 4.x Gradle i usunięte w 5.Wersja x Gradle.

 28
Author: Nikunj Paradva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-06 06:46:49

Dzieje się tak, ponieważ operator zmiany lewej został zastąpiony przez doLast { }.

<< has deprecated in 4.x and removed in 5.0 version

Teraz będziesz musiał zmienić kod:

task incrementBetaVersion << {
    println("Incrementing Beta Version Number...")
    incrementVersionNumber('BetaVersionNumber')
    println("Incrementing Beta Version Number...")
    incrementVersionName('BetaVersionName')
}

Do

task incrementBetaVersion  {
    doLast {
        println("Incrementing Beta Version Number...")
        incrementVersionNumber('BetaVersionNumber')
        println("Incrementing Beta Version Number...")
        incrementVersionName('BetaVersionName')
    }
}
 9
Author: naveenos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-04 11:37:12

Aby rozwiązać ten błąd jest dość proste.

Wystarczy zamienić << na doLast

Zobacz poniżej zaktualizowany kod, dziś naprawić w moim projekcie cordova Android.

task cdvPrintProps {
   doLast {
       println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
       println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
       println('cdvVersionCode=' + cdvVersionCode)
       println('cdvVersionCodeForceAbiDigit=' + cdvVersionCodeForceAbiDigit)
       println('cdvMinSdkVersion=' + cdvMinSdkVersion)
       println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
       println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile)
       println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
       println('cdvBuildArch=' + cdvBuildArch)
       println('computedVersionCode=' + android.defaultConfig.versionCode)
       android.productFlavors.each { flavor ->
           println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
       }
   }
}
 5
Author: Muddasir23,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-27 13:27:17

Miałem ten błąd w projekcie Kotlin, który używa MockMaker do makietowania niekończących się klas.

Rozwiązaniem jest zmiana starej składni na nową:

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")
        }
    }
}

Zauważ, że kilka rzeczy się zmieniło, jak włączenie bloku doLast i usunięcie << z sygnatury zadania. Teraz mi pasuje. Mam nadzieję, że dla ciebie też: -)

 2
Author: voghDev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-21 10:28:00