我有一个同时具有gradle(6.3)和gradlew的项目。当我执行“./gradlew构建”时,一切都很好。但是,当我“逐步构建”时,出现以下错误:
What went wrong:
A problem occurred evaluating root project ....
> Failed to apply plugin [id '...']
> Could not create an instance of type ....
> org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;
任何想法都可能导致包装器正常工作并且不发声吗?
谢谢-C
最佳答案
./gradlew build
使用的版本与gradle build
使用的版本不同。这正是gradle包装器的原因:它将查看文件gradle/wrapper/gradle-wrapper.properties
的内容以找出要使用的Gradle版本,然后自动下载并使用该Gradle版本。您安装的Gradle版本6.3比gradlew
(渐变包装器)脚本所使用的Gradle更新。这就是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)。因此Gradle API发生了更改,并且您的构建脚本不再兼容。错误的第二部分:
> Failed to apply plugin [id '...']
告诉您这是在插件的实现中发生的(由id中的
...
提供)。这意味着要使用较新的gradle版本修复该错误,则需要修改该插件。
关于gradle - Gradle和Gradlew的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61413391/