无法find或加载主类org.gradle.wrapper.GradleWrapperMain
我通过在Android Studio中删除~/.gradle , ~/.gradle ~./android和~/workspace/project/.gradle等本地目录并selectFile -> Invalidate Caches / Restart...来清理整个项目。 现在执行命令./gradlew会导致以下输出: 
 usr$ ./gradlew tasks Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain 
不用说,我删掉了太多,问题是怎么能再修复? 你有什么想法如何解决这个问题?
  gradlew是gradle wrapper可执行文件 – 在其他地方的windows和shell脚本上的批处理脚本。 如果在build.gradle包含以下行, 
 task wrapper(type: Wrapper) { gradleVersion = '2.0' } 
一个gradle包装脚本被添加到你的源文件夹中。 包装脚本被调用时,下载定义的gradle版本,并执行它。 通过分发你的项目包装,任何人都可以使用它,而无需事先安装Gradle。 更好的是,构build的用户保证使用构build被devise用于的Gradle版本。
 在你的删除中,你删除了gradlew依赖的东西。 你可以从你的源代码仓库中取出gradlew文件,或者如果你安装了gradle,运行gradle wrapper来恢复它。 
ref: Gradle Wrapper
 除了@ RaGe的答案可能是我面临的情况,我有一个全球性的git忽略忽略.jar文件,所以gradle包装jar从未被提交。 因此,在尝试/var/lib/jenkins/my_project/gradlew build之后,我在Jenkins服务器上发生了这个错误。 我不得不明确强制添加的jar然后提交: 
 git add -f gradle/wrapper/gradle-wrapper.jar 
 就我而言,这是一个全球性的.gitignore , 正如HankCa的回答所解释的 。 
 而不是强制添加jar,你需要记住在每个Gradle项目中,我添加了一个覆盖重新包括在我的全局.gitignore的包装jar: 
 *.jar !gradle/wrapper/gradle-wrapper.jar 
这对我很有用,因为我有很多使用Gradle的项目; Git现在提醒我包括包装jar。
 只要没有gradle-wrapper.jar (比如gradle和wrapper )之类的目录被忽略,这个覆盖就会起作用, git不会因为性能的原因而下降到忽略的目录 。 
您也可以将gradlew.bat复制到您的根文件夹中,并将gradlew-wrapper复制到gradlew文件夹中。
这对我有用。
在我的情况下(使用Windows 10)gradlew.bat有以下几行代码:
 set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% 
APP_HOMEvariables实质上是项目的阶梯根文件夹,所以,如果以某种方式搞砸了,你将得到:
错误:无法find或加载主类org.gradle.wrapper.GradleWrapperMain
对我来说,这已经搞乱了,因为我的项目文件夹结构中有&符号(&)。 例如C:\ Test&Dev \ MyProject
所以,gradel试图在C:\ Test的根文件夹中findgradle-wrapper.jar文件(剥离包括'&'之后的所有内容)
我通过在上面设置的APP_HOME =%DIRNAME%行下面添加以下行来find这个结果。 然后运行bat文件来查看结果。
 echo "%APP_HOME%" 
将会有一些其他的“特殊字符”,可能会打破path/目录。
  @HankCa也解决了我的情况。 我决定把我的危险**/*.jar忽略改为像src/**/lib/*.jar这样的不言自明的types,以避免将来出现这样的问题。 忽略从** / *开始有点太危险,至less对我来说。 通过查看一下.gitignore行后面的想法总是一个好主意。 
什么对我来说是第一次运行:
  gradle wrapper 
成功构build后,我能够运行
 ./gradlew assembleRelease 
来源和感谢: http : //gradle.org/docs/current/userguide/gradle_wrapper.html和https://stackoverflow.com/users/745574/rage
错过了gradle-wrapper.jar目录下的gradle / wrapper项目。
你需要通过这个脚本在build.gradle文件中生成这个文件,如下所示,
 task wrapper(type: Wrapper) { gradleVersion = '2.0' // version required } 
并运行任务:
 gradle wrapper 
使用Gradle 2.4(或更高版本),您可以设置一个包装器,而无需添加专门的任务:
 gradle wrapper --gradle-version 2.3 
要么
 gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.zip 
所有的细节可以find这个链接
- Android Wear项目Gradle Sync失败
- 错误:没有这样的属性:GROUP for class:org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
- 插件太旧,请更新到更新的版本,或设置ANDROID_DAILY_OVERRIDE环境variables
- Android Studio:检测到未注册的VCS根目录
- Gradle版本2.2是必需的。 当前版本是2.10
- 与Gradle组装时如何更改Android应用程序包名称?
- AAPT2编译失败:Android 3.0 Canary上无效的维度1
- Android Studio:Gradle – 构build失败 – 任务执行失败':dexDebug'
- 在Android 4上使用Android Studio的NoClassDefFoundError