./gradlew build
использует версию Gradle, отличную от используемой gradle build
. Именно в этом и заключается причина использования оболочки Gradle: она будет просматривать содержимое файла gradle/wrapper/gradle-wrapper.properties
, чтобы выяснить, какую версию Gradle использовать, а затем автоматически загружает и использует эту версию Gradle. Установленный Gradle версии 6.3 является более новым, чем тот, который используется скриптом gradlew
(gradle wrapper). Вот почему gradle build
не работает: ваш скрипт сборки несовместим с этой новой версией gradle, он работает только со старой версией, используемой скриптом gradlew
.
Вы видите ошибку вызвано несовместимостью вашего скрипта сборки Gradle с более новой версией Gradle. Давайте посмотрим на первую часть:
> Could not create an instance of type ....
> org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;
Он говорит вам, что Gradle ищет метод directoryProperty
в классе ProjectLayout
. Этот участник существует до версии Gradle 5 (см. https://docs.gradle.org/5.0/javadoc/org/gradle/api/file/ProjectLayout.html), но больше не присутствует в версии Gradle 6.3 (https://docs.gradle.org/current/javadoc/org/gradle/api/file/ProjectLayout.html). Поэтому API Gradle изменился, и ваш скрипт сборки больше не совместим.
Вторая часть ошибки:
> Failed to apply plugin [id '...']
говорит вам, что это произошло в реализации плагина (дано ...
в удостоверении личности). Это означает, что для исправления ошибки в более новых версиях Gradle необходимо изменить плагин.