在Android Studio中构建项目时出现错误

30

刚安装了Android Studio并启动了一个新的Android项目。 尝试运行它,从Gradle收到了这个错误。

Error:Could not open initscript class cache for initialization script 'C:\Users\Dexter\AppData\Local\Temp\asLocalRepo10.gradle' (C:\Users\Dexter\.gradle\caches\2.2.1\scripts\asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv\InitScript\initscript).
java.io.FileNotFoundException: C:\Users\Dexter\.gradle\caches\2.2.1\scripts\asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv\InitScript\initscript\cache.properties (The system cannot find the file specified)

我已经尝试重新构建项目,还尝试删除 .gradle 文件夹,但都没有起作用。


5
我评论只是因为我收到了相同的错误信息,而我知道它发生的过程。(1)通过IDE在手机上运行应用程序(2)Windows 8.1蓝屏(3)Windows重新启动,但必须扫描磁盘以解决问题(4)Windows启动,但很快变得不响应,尤其是打开Android Studio(移动鼠标可以工作,但点击无效,除非点击任务栏最小化窗口)(5)被迫将Windows恢复到几天前的一个检查点(6)收到与OP相同的错误消息。 - Christopher Rucinski
@EnesBattal,您需要更详细地解释您的情况。我相信如果您不断遇到此错误,则手头可能有更严重的错误,并且您可能需要重新安装Android Studio。对于大多数人来说,下面的答案是永久解决方案。请更全面地说明您的问题,我们可以帮助您。 - Christopher Rucinski
谢谢您的回答,但实际上应该找出为什么锁定文件没有自动删除并解决它。但现在,我需要一个解决方案,可以在每次Android Studiobuild时删除锁定文件,而不是手动启动.bat文件。如果可以在每次构建开始时自动运行批处理文件,那就太好了。 - Buddy
如果您必须在每次运行时运行一个.bat文件,则您有更大的问题……您正在给深切的伤口打绷带。Android Studio旨在不必要您做您正在做的事情……您可能有损坏的IDE。您尝试查看新安装是否有效吗?同样,您可以在计算机上安装多个Android Studio...因此,这是可测试的。请提供有关您的Android Studio安装的信息……您没有提供任何信息来解决您的问题。 - Christopher Rucinski
你为什么觉得正确的解决方案是使用非AS解决方案来自动删除这些锁定文件?你应该回答这个问题,但是作为补充,你不认为如果AS没有删除它们,那么你的IDE安装中存在一些潜在问题吗?对我来说,我在使用AS时遇到了BSOD。这导致我的AS损坏,完全无法使用,但是执行下面的答案可以解决它。它没有修复你的安装,但我可以保证新的安装将100%解决你的问题。保证。 - Christopher Rucinski
显示剩余2条评论
10个回答

29

我遇到了同样的问题,仅删除cache.properties.lock文件是不够的。

正如之前指出的那样,解决方法是删除cache.properties.lock文件,但不仅限于Android Studio指向的文件夹。我需要删除VERSION目录下每个锁定文件。

因此,我创建了一个小的.bat文件,内容如下:

del /s cache.properties.lock

将此文件添加到 .gradle\caches\VERSION\ 并运行它。我的 Android Studio 在此之后不再出现问题。

希望可以帮助到您!


1
如何自动化这个过程,以便它不会再次出现问题? - Buddy
1
Gradle太烂了..失望的是Google把它作为默认的构建系统。 - Anton Malyshev

9

错误信息

Error:Could not open initscript class cache for initialization script 
    'C:\Users\Dexter\AppData\Local\Temp\asLocalRepo10.gradle' 
    (C:\Users\Dexter\.gradle\caches\2.2.1\scripts\asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv
    \InitScript\initscript)
java.io.FileNotFoundException: C:\Users\Dexter\.gradle\caches\2.2.1\scripts\
    asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv\InitScript\initscript\cache.properties 
    (The system cannot find the file specified)`

这个错误信息最重要的部分是:
- Could not open initscript class cache
- asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv

所以

  • _XXX_ = asLocalRepo10_d10e66d3o7exs19wwq4uj2zhv
  • _USER_ = Dexter
  • _GRADLE_ = 2.2.1

解决方案

删除 C:\Users\_USER_\.gradle\caches\_GRADLE_\scripts\_XXX_\InitScript\initscript\cache.properties.lock

如果这个方法不行怎么办?

那么你需要找到根本的解决方案。这可能是因为IDE已损坏。尝试在系统上安装另一个Android Studio的副本。

注意: 您可以在系统上拥有多个Android Studio的副本。这里是最新的预览版。如果您检查页面上的备注,您可以看到在AS上安装新版本所需的操作。

如果这样做有效,请让我们知道...否则,我们可以尝试排除其他可能的问题。


8

前往位置

".gradle\caches\2.0\scripts\build_7l4t45nbnsvdcl79ol8u0beli4\ProjectScript"

删除cache.properties.lock文件


1
你可以直接删除c:/users/<user>/.gradle/caches/2.4或最新版本中的scripts文件夹,以及该文件夹中的所有内容。 - geniushkg

5

我也遇到了同样的错误。
所以我做的是清除临时文件夹(如果你不知道在哪里,那么只需按下Windows+R,然后输入%temp%,或者您也可以在文件资源管理器中的地址栏中输入%temp%)。
现在再次运行项目,它应该可以正常运行。
我不知道永久解决方案,但我告诉你这个方法对我有用。
如果有人知道永久性解决方案,请分享给我们。


这对我有所帮助,但并不完全,我只是从显示错误的目录中删除了一些文件,在我的情况下是“C:/Windows/TEMP”,我已经删除了所有属于Android Studio的文件。 - Vijay

3
在我的情况下,是漫游配置文件的问题。每次我从工作切换到家庭网络时,Gradle同步都失败了。尽管我能够通过VPN连接访问网络驱动器,但仍会出现此错误。我不得不将Gradle服务目录路径移动到不依赖于网络的不同位置。
您可以在AS 1.4中执行此操作,方法是转到文件>设置>构建、执行、部署>构建工具>Gradle>服务目录路径。如下所示的屏幕截图:

enter image description here

你也可以添加GRADLE_USER_HOME环境变量,其值与位置相同,以使其成为每个项目的默认值 (http://blog.james-carr.org/2011/05/04/setting-gradle-cache-to-a-common-location/)。你可以参考以下页面了解将Android相关内容移动到不同位置的更多信息:http://www.littlecpu.com/android-studio-c-drive

2

文件 -> 无效缓存/重启 对我有用。


2
在我的情况下,我删除了.gradle文件夹并清理了项目,在重新运行后,该项目正常工作。 enter image description here

1
我遇到了类似的问题。对我来说,解决方法很简单,只需删除文件夹 C:\Users\Dexter.gradle\caches\2.2.1\scripts\ 中的所有文件。同时,我还从 Android Studio 中移除了 VCS 配置。不需要安装新的 Android Studio 来解决此问题。

0

我有同样的问题。只需重新启动Gradle,然后清理您的项目。希望这可以帮助您。


0

我的问题通过授权得到解决

  1. 对于Windows C:\Users 右键单击Users >> 单击Security选项卡 >> 添加组和用户名,例如SYSTEm,您的公司邮件ID

  2. 对于Linux

使用以下命令为.android和.gradle文件夹提供777权限: sudo chmod 777 -R .android/ sudo chmod 777 -R .gradle/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接