gradle 与 gradlew不是内部或外部命令,也不是可运行的程序或批处理文件的问题。

在编辑项目时遇到报错:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.

......

根据经验应该是项目里的资源文件问题,要想获取更详细的信息一般在命令行里执行:

gradlew compileDebugSource --stacktrace -info

gradlew assembleDebug --info

如果异常是:

Execution failed for task ':app:compileDebugJavaWithJavac'

可以用 gradlew compileDebugJavaWithJavac命令来见证奇迹!
 

但是很意外的是我在执行这两条命令时提示"gradlew"不是内部或外部命令,也不是可运行的程序或批处理文件.甚至gradle命令也不好用了。于是重新添加了下gradle的全局变量。

首先项目中gradle-wrapper.properties的distributionPath=wrapper/dists,于是打开AS的Setting->Build,Execution,Deployment->Gradle。找到最下面一行“Service directory path“中设置的gradle的缓存路径。

然后,去该路径下的wrapper/dists文件件下到项目中用的gradle的版本(本项目用的是4.4-all)的bin文件夹:C:\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1\gradle-4.4\bin。将该url添加到环境变量path中。如果没有对应的gradle的版本就需要让AS自动下载或者自己手动去下载对应的gradle进行安装。

测试gradle在命令行是否好用。正常应该是好用的。

回到AS命令行中,发现gradle好用了 但是 gradlew还是不好用。于是在命令行中输入gradle wrapper。

终于gradlew好用了。