Я очистил весь проект, удаляя локальные каталоги , как ~/.gradle
, ~/.m2
~./android
и ~/workspace/project/.gradle
и они выбрали File -> Invalidate Caches / Restart...
в Android Studio. Теперь выполнение команды ./gradlew
приводит к следующему выводу:
usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Излишне говорить, что я удалил слишком много, вопрос в том, как его можно восстановить? У вас есть идеи, как это исправить?
android-studio
gradle
android-gradle-plugin
gradlew
SePröbläm
источник
источник
gradle wrapper
снова, чтобы восстановить отсутствующий код ... это предполагает, что у вас нет настройки управления исходным кодом.Ответы:
Ваша обертка gradle отсутствует, сломана или повреждена.
Что такое gradle wrapper:
gradlew
это исполняемый файл gradle wrapper - пакетный скрипт для windows и скрипт оболочки в другом месте. Сценарий оболочки при запуске загружает определенную версию Gradle и выполняет ее. Распространяя упаковку с вашим проектом, любой может работать с ним без необходимости предварительно устанавливать Gradle. Более того, пользователи сборки гарантированно используют версию Gradle, с которой была рассчитана сборка.Восстановление оболочки gradle:
Раньше вам нужно было добавить
wrapper
задачу в свой build.gradle для восстановления оболочки gradle и всех ее зависимостей. Например:Более новые версии gradle не требуют этого. Теперь это встроенная задача. Просто беги:
Вы также можете указать дополнительные флаги для указания версий и т. Д.
Когда вы запускаете эту задачу, в исходные папки добавляются скрипт обертки gradle и необходимые файлы jar. Свойства хранятся в gradle / wrapper / gradle-wrapper.properties
(Вам может понадобиться установить gradle локально, чтобы запустить это.
brew install gradle
На Mac, например. См. Более подробные инструкции здесь )Почему это пропало в первую очередь?
OP, кажется, удалил что-то, от чего зависит gradle-оболочка.
Но распространенная причина заключается в том, что запись .gitignore предотвращает проверку jar-пакетов в git. Обратите внимание, что .gitignore в действительности может быть в исходной папке, или глобальной в вашей домашней папке пользователя, или в глобальной конфигурации git. Распространено иметь
*.jar
запись в .gitignore.Вы можете добавить исключение для jar-файлов gradlew в .gitignore
или принудительно добавьте банку в Git
ref: Gradle Wrapper
источник
В дополнение к ответу @ RaGe может возникнуть ситуация, с которой я столкнулся, когда у меня было глобальное игнорирование git, которое игнорировало
.jar
файлы, и, таким образом, jar обертки gradle никогда не передавался. Таким образом, я получил эту ошибку на сервере Jenkins после попытки/var/lib/jenkins/my_project/gradlew build
. Мне пришлось явно форсировать добавление банки, а затем зафиксировать:источник
Что сработало для меня, так это сначала запустить:
После успешной сборки я смог запустить
Источник и благодарность: http://gradle.org/docs/current/userguide/gradle_wrapper.html и https://stackoverflow.com/users/745574/rage
источник
Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
В моем случае это был глобальный
.gitignore
, как объясняется в ответе @ HankCa .Вместо принудительного добавления jar, который вы должны будете помнить, чтобы сделать в каждом проекте Gradle, я добавил переопределение, чтобы повторно включить jar-упаковщик в мой global
.gitignore
:Это полезно для меня, так как у меня есть много проектов, которые используют Gradle; Git теперь напомнит мне включить банку с оберткой.
Это переопределение будет работать до тех пор, пока никакие каталоги выше
gradle-wrapper.jar
(например,gradle
иwrapper
) не будут проигнорированы - git не перейдет в игнорируемые каталоги по соображениям производительности .источник
В моем случае я пропустил wrapperподпапку при копировании gradleпапки и получил ту же ошибку.
Не удалось найти или загрузить основной класс org.gradle.wrapper.GradleWrapperMain
убедитесь, что у вас правильная структура папок, если вы копируете оболочку из другого места.
источник
gradle wrapper
даст вам точно такой же результат;)Возможно, вам не хватает
gradle-wrapper.jar
файла в каталогеgradle/wrapper
вашего проекта.Вам нужно сгенерировать этот файл с помощью этого скрипта в файле build.gradle, как показано ниже,
и запустите задачу:
С Gradle 2.4 (или выше) вы можете установить оболочку, не добавляя выделенную задачу:
ИЛИ
Все подробности можно найти по этой ссылке
источник
gradle/wrapper
dir отсутствует. Это можно исправить, запустив,gralde wrapper
как вы заявили.Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
Вы также можете скопировать gradlew.bat в корневую папку и скопировать упаковщик gradlew в папку gradlew.
это работа для меня.
источник
Я следовал за ответами сверху, когда столкнулся с этим. И если у вас возникла эта проблема, убедитесь, что принудительно отправили файлы как jar, так и файлы свойств. После этих двух я перестал получать эту проблему.
источник
В моем случае (с использованием windows 10) gradlew.bat имеет следующие строки кода:
Переменная APP_HOME по сути является корневой папкой для проекта, поэтому, если это каким-то образом испортится, вы получите:
Для меня это было неправильно, потому что в структуре папок моего проекта был амперсанд (&). Например, C: \ Test & Dev \ MyProject
Итак, gradel пытался найти файл gradle-wrapper.jar в корневой папке C: \ Test (удаляя все после и включая '&')
Я нашел это, добавив следующую строку ниже строки APP_HOME =% DIRNAME% выше. Затем запустил файл bat, чтобы увидеть результат.
Там будет несколько других «специальных символов», которые могут сломать путь / каталог.
источник
Я видел ту же ошибку, но в моем случае это была новая установка Git без LFS. Рассматриваемый репозиторий был настроен с LFS, а файл gradle-wrapper.jar был в LFS, поэтому он содержал только указатель на сервер LFS. Решение было простым, просто запустите:
И свежий клон сделал свое дело. Полагаю,
git lfs pull
или простоgit pull
мог бы помочь, но человек с проблемой решил вместо этого сделать свежий клон.источник
@HankCa решил проблему и в моем случае. Я решил изменить свое опасное
**/*.jar
игнорирование на самоочевидное, например,src/**/lib/*.jar
чтобы избежать подобных проблем в будущем. Игнорирование, начинающееся с ** / *, слишком опасно, по крайней мере для меня. И это всегда хорошая идея, чтобы понять идею ряда .gitignore, просто взглянув на него.источник
В моем случае gradle-wrapper.jar был поврежден после замены нескольких файлов. Возврат к первоначальному разрешил проблему.
источник
Я исправил эту проблему следующим исправлением (возможно, это кому-нибудь поможет):
Просто проверьте, есть ли в родительских папках папки вашего проекта имена с пробелами или другими запрещенными символами. Если да - убери это.
«C: \ Users \ someuser \ Test Projects \ testProj» - в этом случае «Test Projects» должно быть «TestProjects».
источник
На Gradle 5.x я использую:
источник
В моем случае я удалил папки gradlew и gradle из проекта. Перезапустите задачи чистой сборки через «Выполнить задачу Gradle» из окна Gradle Projects в intellij.
источник
Для Gradle версии 5+ эта команда решила мою проблему:
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper
источник
если это новый проект, удалите существующую папку и запустите $ npm install -g Reaction-native-cli
проверьте, что работает без ошибок
источник