[Android]解决 Could not read entry xxx from cache taskArtifacts.bin
Bug 出现
事情是这样的,昨天早晨我正做着项目,坐在我旁边的小伙伴呼唤了我一下,说项目运行不起来了。
我纳闷着,前天的时候还好好的,怎么过了一晚就出问题了。我问他是不是改了什么配置,或者添加了什么东西。他说,没有啊,刚打开 AndroidStudio,运行就报错,昨天晚上还是好的。
Bug 真身
好吧,我也没多想,看了下报错的 log 提示,额,没见过。怎么办?直接stackoverflow一下吧!
Error:Could not read entry ':xxx:packageDebug' from cache taskArtifacts.bin (xxx.gradle\2.10\taskArtifacts\taskArtifacts.bin).
com.android.build.gradle.tasks.PackageApplication$DexPackagingPolicy
开始 Debug
首先,在stackoverflow上试着搜了下“Could not read entry ':xxx:packageDebug' from cache taskArtifacts.bin”,无果。
那好删点内容,继续搜“Could not read entry from cache taskArtifacts.bin”。还是无果,那好,来看看是不是配置改动了。
对比了下两台机器上项目中所有和项目构建相关的配置文件,我这边是好的啊,那按我这边的来。改完后,重新编译,运行,依旧报错。
这都折腾十几分钟了,果断不能忍了。仔细看看报错的提示信息:“Could not read entry ':xxx:packageDebug' from cache taskArtifacts.bin.”。这里说的不能从什么 bin 中读取 entry。嗯,那应该可能是文件坏了,读不了;或者权限变化了,不让读了。
OK,这好办,让我看看你的属性。一看,想简单了,属性中看不出什么异常。那好,用我机器上的给你替换了,这回该行了吧!于是将整个“.gradle”文件夹替换掉,我再试。额,还不行。
Debug 三板斧
网上找不到解决方案(当然没有 Google 试一下),试了这么久又没见效果。咋办?好吧!逼我使出杀手锏 —— 重装、重启、还原,对就是我以前修电脑的那套。
重装,在这里用不好,为什么?因为其他的项目是好用的,说明 AndroidStudio 应该没“坏”。
重启,这个可以试一下。说干就干,把 AndroidStudio 关了,重新打开,一个样,还是报同样的错。
只剩下还原大法没用了,这个貌似也不符合目前的场景啊(不到那一步我可不想重新从仓库 down 代码来构建个新工程,这是“下策”,有木有)。
重整旗鼓再战
第一招杀手锏失效了,不怕,我可不是程咬金,就这三板斧。虽然,还有很多招数没有使出来,但我知道,该坐下来好好分析下问题了。下面,看看我的分析思路:
- 定位报错位置,这好办,就是这个taskArtifacts.bin
- 查看报错原因,Could not read entry ...
- 综合上述现象,推测可能的原因 —— 不能从这个什么 bin 中读出东西来(这还用你说,人家就是这样提示的,呵呵)
- 等一下,少了个关键点,这个文件是哪里来的
想到这,我有点眉目了。这个文件不是我们自己写的,是工具帮我们生成的(这个我没有深入研究是哪个工具生成的,姑且认为是 AndroidStudio 中的某个工具吧)。那问题来了,既然都不是我写的,你给我报错,那应该是你生成的时候出问题了(相信大家以前在使用 Eclipse 的时候都遇到过 R 文件不存在的问题,想想这个一般都是怎么解决的)。那好那我让你重新给我生成一下,这下该可以了吧!
要怎么让 AndroidStudio 给我们重新生成这个 taskArtifacts.bin 是个问题。为什么这么说?因为很显然重新编译的时候这个文件没有更新的说,至少目前现象来看,它没有更新。这也好办,我把你全部删了,这回该给我生成新的了吧!
Bug 解决
没错,把项目中 .gradle 文件夹下面的所有内容删除,然后 clean 一下项目,就好了。如下图:
说明:到这里,本文应该告一段落了。虽然最后解决了问题,但是却有个不爽的事 —— 自始至终没找出问题出在哪里。
当时也没有截图,只是保存了当时报错的信息。我想还是应该记录一下这个问题,为减少以后再采坑里去。
下面,我演示一下如何模拟复现这个问题,权当是一次记录。
在文件夹中定位到 taskArtifacts.bin 文件
定位到 taskArtifacts.bin,修改属性,将其改为只读属性
错误复现
这里请不要较真,当时的场景已经没有办法复现,这里仅仅是模拟...
解决问题
在这里只要把只读属性去掉就好了。
说明:这里想提醒自己,以后要是遇到类似的问题,首先要仔细阅读错误 log 提示,然后,冷静思考问题出现的可能原因,不要过于依赖搜索引擎,要养成勤思考的习惯。
[Android]解决 Could not read entry xxx from cache taskArtifacts.bin的更多相关文章
- Android studio 编译失败Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts.b
Android studio 编译失败 Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts. ...
- android ReactNative之Cannot find entry file index.android.js in any of the roots
android ReactNative之Cannot find entry file index.android.js in any of the roots 2018年04月02日 14:53:12 ...
- [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换
[Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换 问题现象: 碰到一个问题,UI交互表现为:联通号码在3gwap网络环境下资源一直无法下载成功. 查看Log日志,打印出 ...
- mysql 出现Duplicate entry ‘xxx’ for key ‘PRIMARY’,一个自增字段达到了上限,
mysql 出现Duplicate entry 'xxx' for key 'PRIMARY',一个自增字段达到了上限,
- Android编译异常` Cause: duplicate entry: META-INF/MANIFEST.MF`
目录 Android编译异常Cause: duplicate entry: META-INF/MANIFEST.MF 解决方案2: 治标又治本(暂无) 解决方案1: 治标不治本(还原大法) 参考资料 ...
- ASMCMD报错解决:sh: /u01/app/11.2.4/grid/bin/clsecho: No such file or directory
sh: /u01/app/11.2.4/grid/bin/clsecho: No such file or directory 在登录asmcmd时报此错误,尝试解决,刷新oracle_sid也不行 ...
- Android开发 解决Installation failed due to XXX 问题
报错信息 Android studio 安装app的时候以下报错 Installation did not succeed. The application could not be installe ...
- 【转】Android adb shell操作时出现“ XXX ... Read-only file system”解决办法--不错
原文网址:http://blog.csdn.net/whu_zhangmin/article/details/25364349 手机连接PC后 adb shell su rm -r /system/a ...
- Android APP打包时,出错:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
"app_name" is not translated in "af" (Afrikaans), "am" (Amharic), &quo ...
随机推荐
- python基本模块相关信息
系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...
- matlab的调试
MATLAB(1)——基本调试方法(Debug) 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 前言 之前经 ...
- BZOJ 1600 [Usaco2008 Oct]建造栅栏:dp【前缀和优化】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1600 题意: 给你一个长度为n的木板,让你把这个木板切割成四段(长度为整数),并且要求这四 ...
- mysql八:ORM框架SQLAlchemy
阅读目录 一 介绍 二 创建表 三 增删改查 四 其他查询相关 五 正查.反查 一 介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进 ...
- laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)
laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...
- hdu-5813 Elegant Construction(贪心)
题目链接: Elegant Construction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (J ...
- POJ3728The merchant (倍增)(LCA)(DP)(经典)(||并查集压缩路径?)
There are N cities in a country, and there is one and only one simple path between each pair of citi ...
- P1912 [NOI2009]诗人小G[决策单调性优化]
地址 n个数划分若干段,给定$L$,$p$,每段代价为$|sum_i-sum_j-1-L|^p$,求总代价最小. 正常的dp决策单调性优化题目.不知道为什么luogu给了个黑题难度.$f[i]$表示最 ...
- 九 Vue学习 manager页面布局
1: 登录后系统页面如下: 对应代码: <template> <div class="manage_page fillcontain"> <el-r ...
- ENFP喜欢的职业
外向(E)+直觉(N)+情感(F)+知觉(P). 1. 设计:设计本身很能满足ENFP对工作的各种要求,但是有个附加条件就是,这份工作不能让ENFP长时间的一个人工作,没机会和别人交流,也就是说有一个 ...