错误:在锁定文件中发现意外的锁定协议。预期 3,发现 0。
Posted
技术标签:
【中文标题】错误:在锁定文件中发现意外的锁定协议。预期 3,发现 0。【英文标题】:Error:Unexpected lock protocol found in lock file. Expected 3, found 0. 【发布时间】:2017-08-18 01:03:18 【问题描述】:我将我的 android studio 更新为 2.3,然后将我的应用程序连接到 Firebase,它给了我一个错误:
错误:在锁定文件中发现意外的锁定协议。预期 3 个,找到 0 个。
我需要回到 2.2.3 还是有什么办法可以解决这个问题?我尝试在我的项目中删除 .gradle 文件,但它仍然给我一个错误。
【问题讨论】:
Error:Unexpected lock protocol found in lock file. Expected 3, found 0的可能重复 【参考方案1】:从用户目录中删除.gradle
文件夹,而不是从项目中。
C:\users\username\.gradle in windows
/home/username/.gradle in Linux
/users/username/.gradle in Mac
【讨论】:
两天后,终于。谢谢。 在某些 Gradle 依赖项下载期间,办公室发生了电涌。这解决了问题。 我的笔记本电脑强制关机引发了这个问题,但我很高兴这个解决方案解决了这个问题。愿意解释由此产生的错误吗?再次感谢您。 我尝试了这个解决方案,但没有奏效。我也做了“使缓存无效/重新启动”,但仍然出错。请帮帮我.........【参考方案2】:在您为 android studio 删除整个通用 .gradle 文件夹之前,请注意以下含义和后果。
重新下载其内容将花费多达 3 -4 GB 如果您不小心并且网络不是超级快,下载可能需要几天时间 对于您重新打开的每个旧项目,可能会丢失一些项目,因此,android studio 将不得不重新下载丢失的内容,如果您选择在没有免费互联网的随机餐馆取出笔记本电脑并快速获取,上帝会帮助您完成了一些工作。 删除过程涉及数千个文件,最多 119k,操作系统找到它们将花费很长时间,删除将花费更长的时间。这是一个更好的解决方案;
完全关闭android studio 使用操作系统的文件资源管理器,在您应用的项目文件夹中打开 .gradle 文件夹 记下其中文件夹的编号(名称),例如(2.3 or 4.4 or 4.6 or 4.8) 按照@Gabriele Mariotti 的说明转到您的常规 .gradle 文件夹 打开它并打开“缓存”文件夹 删除与第二步相同编号的文件夹 如果你像我一样偏执,你也可以删除你项目的 .gradle 文件(不是必须的)文件不大于 4 MB,不会重新下载,而是由 android studio 自动重新生成,因此整个过程不会花费您 5 分钟,不消耗数据,并且之前的所有项目都可以正常运行。
【讨论】:
不一定。项目中的.gradle
只包含本地缓存。另一方面,C:/Users/YourUsername/.gradle
包含实际的 .jar 缓存,这将需要大量数据。但是,对于某些人来说,数据不一定是个问题,因为很多 ISP 都提供无限数据。时间是另一个问题。
C:/Users/YourUsername/.gradle
,这就是我指的那个,当我说不要按照@Gabriele Mariotti 的指示轻易删除时。【参考方案3】:
对于linux用户,按ctrl+H显示主目录中的隐藏文件,因为.gradle目录通常是隐藏的,删除.gradle目录。
之后,您可能会收到“无法锁定构建输出”错误 然后通过执行以下操作删除 gradle 缓存中的锁定文件:
find ~/.gradle -type f -name "*.lock" -delete
【讨论】:
【参考方案4】:从项目的根文件夹中删除 .gradle 文件夹。 例如,如果您的项目根文件夹是 MyApp。
-
在 Android Studio 中关闭您的项目
从项目列表中删除您的项目。
退出安卓工作室。
转到 MyApp 文件夹。
找到 .gradle 文件夹。
删除它。
重启 Android Studio。
再次导入您的项目。
Android Studio 将再次自动下载所有必要的 Gradle 文件(需要 Internet)。
全部完成。
【讨论】:
以上是关于错误:在锁定文件中发现意外的锁定协议。预期 3,发现 0。的主要内容,如果未能解决你的问题,请参考以下文章
作业一:登录界面(优化,能读取锁定文件中的任意用户名,一旦发现所输入的用户名是锁定文件中的,立即告知并跳出循环)
FindFirstChangeNotification 锁定父文件夹