前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Error:Execution failed for task ':RecyclerViewDemo:mergeDebugResources'.

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

作者头像
程序员飞飞
发布2020-02-27 16:02:37
5030
发布2020-02-27 16:02:37
举报
文章被收录于专栏:Android&Java技术Android&Java技术

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

(一)异常log信息如下:

代码语言:javascript
复制
Error:Execution failed for task ':RecyclerViewDemo:mergeDebugResources'.
> java.lang.ArrayIndexOutOfBoundsException (no error message)

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

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

(三)分析:

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

如下图

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

(四)解决:

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档