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 代码来构建个新工程,这是“下策”,有木有)。

重整旗鼓再战

第一招杀手锏失效了,不怕,我可不是程咬金,就这三板斧。虽然,还有很多招数没有使出来,但我知道,该坐下来好好分析下问题了。下面,看看我的分析思路:

  1. 定位报错位置,这好办,就是这个taskArtifacts.bin
  2. 查看报错原因,Could not read entry ...
  3. 综合上述现象,推测可能的原因 —— 不能从这个什么 bin 中读出东西来(这还用你说,人家就是这样提示的,呵呵)
  4. 等一下,少了个关键点,这个文件是哪里来的

想到这,我有点眉目了。这个文件不是我们自己写的,是工具帮我们生成的(这个我没有深入研究是哪个工具生成的,姑且认为是 AndroidStudio 中的某个工具吧)。那问题来了,既然都不是我写的,你给我报错,那应该是你生成的时候出问题了(相信大家以前在使用 Eclipse 的时候都遇到过 R 文件不存在的问题,想想这个一般都是怎么解决的)。那好那我让你重新给我生成一下,这下该可以了吧!

要怎么让 AndroidStudio 给我们重新生成这个 taskArtifacts.bin 是个问题。为什么这么说?因为很显然重新编译的时候这个文件没有更新的说,至少目前现象来看,它没有更新。这也好办,我把你全部删了,这回该给我生成新的了吧!

Bug 解决

没错,把项目中 .gradle 文件夹下面的所有内容删除,然后 clean 一下项目,就好了。如下图:

说明:到这里,本文应该告一段落了。虽然最后解决了问题,但是却有个不爽的事 —— 自始至终没找出问题出在哪里。

当时也没有截图,只是保存了当时报错的信息。我想还是应该记录一下这个问题,为减少以后再采坑里去。

下面,我演示一下如何模拟复现这个问题,权当是一次记录。

在文件夹中定位到 taskArtifacts.bin 文件

定位到 taskArtifacts.bin,修改属性,将其改为只读属性

错误复现


这里请不要较真,当时的场景已经没有办法复现,这里仅仅是模拟...

解决问题

在这里只要把只读属性去掉就好了。

说明:这里想提醒自己,以后要是遇到类似的问题,首先要仔细阅读错误 log 提示,然后,冷静思考问题出现的可能原因,不要过于依赖搜索引擎,要养成勤思考的习惯。

[Android]解决 Could not read entry xxx from cache taskArtifacts.bin的更多相关文章

  1. 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. ...

  2. 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 ...

  3. [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换

    [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换 问题现象: 碰到一个问题,UI交互表现为:联通号码在3gwap网络环境下资源一直无法下载成功. 查看Log日志,打印出 ...

  4. mysql 出现Duplicate entry ‘xxx’ for key ‘PRIMARY’,一个自增字段达到了上限,

    mysql 出现Duplicate entry 'xxx' for key 'PRIMARY',一个自增字段达到了上限,

  5. Android编译异常` Cause: duplicate entry: META-INF/MANIFEST.MF`

    目录 Android编译异常Cause: duplicate entry: META-INF/MANIFEST.MF 解决方案2: 治标又治本(暂无) 解决方案1: 治标不治本(还原大法) 参考资料 ...

  6. 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也不行 ...

  7. Android开发 解决Installation failed due to XXX 问题

    报错信息 Android studio 安装app的时候以下报错 Installation did not succeed. The application could not be installe ...

  8. 【转】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 ...

  9. Android APP打包时,出错:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....

    "app_name" is not translated in "af" (Afrikaans), "am" (Amharic), &quo ...

随机推荐

  1. python基本模块相关信息

    系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...

  2. matlab的调试

    MATLAB(1)——基本调试方法(Debug)           链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 前言 之前经 ...

  3. BZOJ 1600 [Usaco2008 Oct]建造栅栏:dp【前缀和优化】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1600 题意: 给你一个长度为n的木板,让你把这个木板切割成四段(长度为整数),并且要求这四 ...

  4. mysql八:ORM框架SQLAlchemy

    阅读目录 一 介绍 二 创建表 三 增删改查 四 其他查询相关 五 正查.反查 一 介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进 ...

  5. laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...

  6. hdu-5813 Elegant Construction(贪心)

    题目链接: Elegant Construction Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 65536/65536 K (J ...

  7. 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 ...

  8. P1912 [NOI2009]诗人小G[决策单调性优化]

    地址 n个数划分若干段,给定$L$,$p$,每段代价为$|sum_i-sum_j-1-L|^p$,求总代价最小. 正常的dp决策单调性优化题目.不知道为什么luogu给了个黑题难度.$f[i]$表示最 ...

  9. 九 Vue学习 manager页面布局

    1:  登录后系统页面如下: 对应代码: <template> <div class="manage_page fillcontain"> <el-r ...

  10. ENFP喜欢的职业

    外向(E)+直觉(N)+情感(F)+知觉(P). 1. 设计:设计本身很能满足ENFP对工作的各种要求,但是有个附加条件就是,这份工作不能让ENFP长时间的一个人工作,没机会和别人交流,也就是说有一个 ...