Error:Execution failed for task ':RecyclerViewDemo:mergeDebugResources'.

来源:互联网 发布:java date 上午下午 编辑:程序博客网 时间:2024/06/06 11:41

问题描述:博主在导入别人一个Demo时候,在编译时编译失败,打出如下错误日志信息

(一)异常log信息如下:

Error:Execution failed for task ':RecyclerViewDemo:mergeDebugResources'.> java.lang.ArrayIndexOutOfBoundsException (no error message)

(二)翻译如上的错误信息为:

RecyclerViewDemo在合并调试资源的时候执行任务失败!数组下标越界异常(没有错误信息)

(三)分析:

为什么会出现这样的问题呢?带着这个问题检查了一下程序,根据问题的描述应该不是代码的问题,然后查看资源文件目录res目录,咦!发现了问题惊讶如下图

       

       res目录下怎么多了一个资产目录(assets)?这个目录不应该放在main下面吗?

(四)解决:

      就尝试着将这个目录移动到main目录下,然后再编译运行就解决了这个问题,最后想了一下res目录下的资源文件必须是要放在固定文件名的资源目录下的,而且这些文件再编译的过程中都在R.java文件下生成相应的标记,会对应一个的id来进行访问,而assets目录下的文件不会生成对应的id,使用的时候要使用AssetsManager类来访问assets目录下的资源,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中,最后还有一点就是assets目录下允许存在多级目录,而res下不允许目录结构存在。


 由于水平有限(正往Android大神进化中ing...),难免会有说的不对的地方,如果有什么问题希望大家踊跃批评指正,最后如果解决了大家的问题可以给我点个赞,也算是对我小小的鼓励吧...谢谢!吐舌头

1 0
原创粉丝点击