记一个报错: could not create parent d

2020-10-16  本文已影响0人  王家匀匀

具体是:could not create parent directory for lock file/xxxx (User/.gradle/dists目录下,某个gradle版本里面的文件),电脑是Windows电脑。就是上班过来突然就这样了。
各种Google,参考以下方案:依然不行
(https://stackoverflow.com/questions/45527316/could-not-create-parent-directory-for-lock-file/48979955)

直接说最终解决办法:更换 gradle 文件路径。
原因推测:电脑的这个文件夹文件损坏,且不可写入,与项目、编辑器无关。

尝试了:
重启电脑、删除.idea,build文件夹,invalidate caches/resatrt as,rebuild、clean build 、refresh graldle 、删除.gradle 中的caches文件夹、重新down git 新项目 都不行。

对了,除了以上方法。还有几个常见解决不能编译问题的办法:

  1. 关闭as,再删除缓存文件。避免文件使用对文件操作的影响;
  2. 切换 不同环境。比如测试切换到uat。目的是使得gradle可以重新走一遍流程;
  3. 切换 不同的分支。如果在主干没问题,而在某个分支有问题,那么大概率是代码的问题。
    有一次项目中,上午还好好的。然后突然就不行了。切换到其他分支没有问题,其它同事在这个分支也没有问题,就我这个分支有问题。最后发现:gradle 中的某一个库,使用的是动态版本(没有固定版本可以设置),然后那个时候正好这个jar 包更新了。更新后的jar包与项目不兼容。

继续尝试:删除 user/.gradle,删除不了。因为文件夹是可读的。嫌疑最大的是 .gradle/dists 文件,文件打不开。

image.png
听从同事建议,尝试使用类似360、腾讯管家。腾讯的电脑管家强制删除以及粉碎文件,都是失败。行吧,同事提出了最后的建议:更换gradle 地址
打开路径:as File-setting-Build,Execution,Deplyment-Gradle-修改 Gradle user home 地址。 image.png

这里地址需要注意,需要改成user 账户下,home direction.所以我改成F盘地址,会提示特殊文件不能暴露出来。最后选择了C盘账户下,新创建了一个不同名的文件夹。下一步,就是gradle 文件下载了。最后就是漫长的等待,等待gradle相关文件下载。

这里还有个思路。如果不是文件夹可以操作,可以在原来的.gradle 中,放入新下载的gradle版本 文件。
gradle 各个版本下载地址如下:
https://services.gradle.org/distributions/

gradle 版本与Android tools 版本对应:
https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn
修改项目的gradle 版本:在项目的gradle文件中设置

 classpath "com.android.tools.build:gradle:${gradle_version}"

在gradle-wrapper.properties中设置,对应版本号

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip



最后,折腾了2个多小时,终于编译成功了,留下了感动的泪水。
我发现针对一些奇怪的问题,最后的解决办法也是要脑子活起来,换个思路(比如说这里,已经确定是文件的问题,同时原来的文件确定又不可以删除、更改,那么使用新文件就是一个自然而然的想法)。不要害怕尝试。
哎,多亏有同事,不然不知道还要花多久时间。我爱公司、我爱工作、我爱热心帮助的各个同事。

上一篇下一篇

猜你喜欢

热点阅读