Seu invólucro de graduação está ausente, quebrado ou corrompido.
O que é o gradle wrapper:
gradlew
é o executável do gradle wrapper - script em lote no windows e shell script em outro local. O script do wrapper, quando chamado, baixa a versão definida do gradle e a executa. Ao distribuir o wrapper com seu projeto, qualquer pessoa pode trabalhar com ele sem a necessidade de instalar o Gradle previamente. Ainda melhor, é garantido que os usuários da compilação usem a versão do Gradle com a qual a compilação foi projetada para funcionar.
Restaurando o Gradle Wrapper:
Costumava ser necessário adicionar uma wrapper
tarefa ao seu build.gradle para restaurar o gradle wrapper e todas as suas dependências. Por exemplo:
task wrapper(type: Wrapper) {
gradleVersion = '4.1'
}
As versões mais recentes do gradle não exigem isso. Agora é uma tarefa interna. Apenas corra:
gradle wrapper
Você também pode fornecer sinalizadores adicionais para especificar versões, etc.
gradle wrapper --gradle-version 6.2 --distribution-type all
Quando você executa esta tarefa, um script wrapper gradle e os arquivos jar necessários são adicionados às suas pastas de origem. As propriedades são armazenadas em gradle / wrapper / gradle-wrapper.properties
(Pode ser necessário instalar o gradle localmente para executar isso. brew install gradle
No mac, por exemplo. Veja instruções mais detalhadas aqui )
Por que estava faltando em primeiro lugar?
O OP parece ter excluído algo do qual o gradle wrapper depende.
Mas um motivo comum é que uma entrada .gitignore impede que os jars do wrapper sejam verificados no git. Observe que o .gitignore em vigor pode estar na pasta de origem ou global na pasta inicial do usuário ou na configuração global do git. É comum ter uma *.jar
entrada no .gitignore.
Você pode adicionar uma exceção para os arquivos jar do gradlew em .gitignore
*.jar
!gradle/wrapper/gradle-wrapper.jar
ou forçar, adicione o frasco do wrapper no git
git add -f gradle/wrapper/gradle-wrapper.jar
ref: Wrapper Gradle
gradle wrapper
novamente para gerar novamente o código ausente ... isso pressupõe que você não tenha nenhuma configuração de controle de origem.