我通过删除~/这样的本地目录来清理整个项目。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
所有细节都可以在这个链接中找到
在我的情况下(使用windows 10) gradlew.bat有以下几行代码:
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
APP_HOME变量本质上是项目的gradles根文件夹,所以,如果这在某种程度上搞砸了,你会得到:
错误:无法找到或加载主类
org.gradle.wrapper.GradleWrapperMain
对我来说,这是一团糟,因为我的项目文件夹结构中有一个&号。例如C: \ Test&Dev \ MyProject的
所以,grader试图在C:\Test的根文件夹中找到gradle-wrapper.jar文件(剥离后面的所有内容,包括'&')
通过在上面的set APP_HOME=%DIRNAME%行下面添加以下行,我发现了这一点。然后运行bat文件查看结果。
echo "%APP_HOME%"
还有其他一些“特殊字符”可能会破坏路径/目录。