我通过删除~/这样的本地目录来清理整个项目。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/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文件夹时遗漏了包装器子文件夹,并得到了相同的错误。

无法找到或加载主类org.gradle.wrapper.GradleWrapperMain

如果从其他位置复制包装器,请确保具有正确的文件夹结构。

├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

你也可以拷贝gradlew.bat到你的根文件夹和拷贝gradlew-wrapper到gradlew文件夹。

那是我的工作。

在我的例子中,它是一个全局的。gitignore,正如@HankCa的回答所解释的那样。

我没有在每个Gradle项目中强制添加jar,而是在全局的.gitignore中重新包含了包装器jar:

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

这对我来说很有用,因为我有很多使用Gradle的项目;Git现在会提醒我包含包装器jar。

只要gradle-wrapper.jar上面的目录(比如gradle和wrapper)没有被忽略,这个重写就可以工作——出于性能原因,git不会进入被忽略的目录。

如果您使用的是MacOS,并且。/gradle/wrapper/gradle-wrapper.jar文件已经存在,但仍然抛出相同的错误,这可能是由于MacOS对Documents文件夹的java权限。

去系统首选项->安全和隐私->隐私选项卡->文件和文件夹-> Java,并检查“文档文件夹”复选框(或任何其他可能出现在你的应用程序)。

我和这个东西斗争了几个小时,所以我希望它对某人有用。