我通过删除~/这样的本地目录来清理整个项目。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

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


当前回答

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

git lfs install

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

其他回答

在我的情况下,我在复制gradle文件夹时遗漏了包装器子文件夹,并得到了相同的错误。

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

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

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

对于Gradle版本5+,这个命令解决了我的问题:

gradle wrapper

https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper

对我有效的方法是:

 gradle wrapper

在成功构建之后,我可以运行了

./gradlew assembleRelease

注意:为了能够运行gradle包装器,首先运行brew安装gradle。如果安装成功,从项目根运行gradle包装器。

来源和感谢:http://gradle.org/docs/current/userguide/gradle_wrapper.html和https://stackoverflow.com/users/745574/rage

我们的问题是gradle-wrapper.jar文件一直被git破坏。

我们必须添加一个.gitattributes文件:

*.jar binary

然后从git中删除jar并再次添加它。奇怪的是,这只要求我们的一个回购,而不是其他。

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

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

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

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

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