我通过删除~/这样的本地目录来清理整个项目。gradle ~ /。m2 ~。~/workspace/project/。gradle和选择文件-> Invalidate Caches / Restart…在Android Studio。 现在执行./gradlew命令会得到以下输出:

usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

不用说,我删掉的太多了,问题是怎样才能重新修复呢?你有什么解决办法吗?


当前回答

我得到了这个错误,因为我的应用程序是在一个文件夹,有一个阿拉伯语的名字,我解决它,只是改变阿拉伯语文件夹的名字为英语一个,它工作正常。

所以要确保你的应用程序的所有路径都是用英文写的。

其他回答

从你任何正在运行的项目中复制Gradle的文件夹。 将其替换到当前项目中

然后重建 我希望你工作顺利。

我看到了同样的错误,但在我的情况下,这是一个没有安装LFS的新Git安装。问题中的repo是用LFS设置的,gradle-wrapper.jar在LFS中,所以它只包含一个指向LFS服务器的指针。解决方案很简单,只需运行:

git lfs install

一个新的克隆体成功了。我想git lfs拉或只是一个git拉可能有帮助,但有问题的人决定做一个新的克隆代替。

您可能在项目的gradle/wrapper目录下丢失了gradle-wrapper.jar文件。

您需要在构建中通过此脚本生成此文件。Gradle文件如下,

task wrapper(type: Wrapper) {
   gradleVersion = '2.0' // version required
}

并运行task:

gradle wrapper

使用gradle 2.4(或更高版本),你可以在不添加专用任务的情况下设置一个包装器:

gradle wrapper --gradle-version 2.3

OR

gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.zip

所有细节都可以在这个链接中找到

您的gradle包装丢失,损坏或损坏。

-- 什么是gradle包装:

Gradlew是gradle包装可执行的批处理脚本在Windows和shell脚本在其他地方。包装器脚本在被调用时,下载已定义的gradle版本并执行它。通过将包装器与项目一起分发,任何人都可以使用它,而不需要事先安装Gradle。更好的是,构建的用户可以保证使用该构建设计用于工作的Gradle版本。

-- 恢复gradle包装:

过去,您需要向构建中添加包装器任务。恢复Gradle包装器及其所有依赖项。例如在build.gradle中:

    task wrapper(type: Wrapper) {
        gradleVersion = '4.1'
    }

或者在build.gradle.kts中:

    tasks.register<Wrapper>("wrapper") {
        gradleVersion = "4.1"
    }

较新的gradle版本不需要这个。现在它是一个内置任务。运行:

gradle wrapper

你也可以提供额外的标志来指定版本等等

gradle wrapper --gradle-version 6.2 --distribution-type all

当您运行这个任务时,一个gradle包装器脚本和所需的jar文件被添加到您的源文件夹中。属性存储在gradle/wrapper/gradle-wrapper. Properties中

(你可能需要在本地安装gradle来运行它。例如在MAC上安装gradle。在这里查看更详细的说明)

-- 为什么它一开始就不见了?

OP似乎删除了一些gradle wrapper依赖的东西。

但是一个常见的原因是.gitignore条目阻止包装器jar被检入git。请注意,.gitignore可能在源文件夹中,也可能在用户主文件夹或git全局配置中的全局文件夹中。在.gitignore中有*.jar条目是很常见的。

你可以在.gitignore中为gradlew的jar文件添加一个异常

*.jar
!gradle/wrapper/gradle-wrapper.jar

或者强制将包装器jar添加到git中

git add -f gradle/wrapper/gradle-wrapper.jar

-- 参考:Gradle包装

我修复了这个问题的下一个修复(也许它会帮助别人):

只需检查项目文件夹的父文件夹名称中是否包含空格或其他禁止使用的字符。如果存在,请移除。

"C:\Users\someuser\Test Projects\testProj" -在本例中,"TestProjects"应该是"TestProjects"。