148 votes

Impossible de trouver la méthode leftShift () pour les arguments après la mise à jour de studio 3.4

Après la mise à jour du studio 3.4 et de la version Gradle vers 5.1.1 j'ai eu l'erreur sur ma tâche car impossible de trouver la méthode leftShift ()

Ma tâche:

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

J'ai eu l'erreur pour l'opérateur de décalage gauche << dans la ligne.

Comment résoudre cette erreur?

9voto

naveenos Points 141

Cela se produit à cause de l'opérateur Left Shift a été remplacé par doLast {}.

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

Maintenant, vous devrez changer le code:

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

9voto

Muddasir23 Points 485

Résoudre cette erreur est assez simple.

Remplacez simplement << par doLast

Voir ci-dessous le code mis à jour, aujourd'hui je corrige dans mon projet Android cordova.

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

2voto

voghDev Points 161

J'ai eu cette erreur dans un projet Kotlin qui utilise MockMaker pour simuler des classes non finales.

La solution est de remplacer l'ancienne syntaxe par la nouvelle:

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

Notez que certaines choses ont changé, comme l'inclusion du doLast et la suppression du << de la signature de la tâche. Ça marche pour moi maintenant. J'espère que cela le fera aussi pour vous :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X