我通过删除~/这样的本地目录来清理整个项目。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.jar在替换了一堆文件后被损坏。回到原来的那个解决了这个问题。

其他回答

除了@RaGe的答案可能是我所面临的情况,我有一个全局git忽略忽略。jar文件,所以gradle包装器jar永远不会被提交。因此,在尝试/var/lib/jenkins/my_project/gradlew构建后,我在Jenkins服务器上得到了这个错误。我必须显式地强制添加jar,然后提交:

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

在我的例子中,我已经从项目中删除了gradlew和gradle文件夹。 在intellij中的Gradle项目窗口中,通过“运行Gradle任务”重新运行干净的构建任务

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

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

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

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

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

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

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

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

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

我顺着上面的答案发现了这个。如果你有这个问题,一定要强制推送jar和属性文件。这两期之后,我就不再看这期了。

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