文档章节

Android Studio clean操作 rebuild报错 specified for property 'resDir' does not exist 解决方案

AlanTang2416
 AlanTang2416
发布于 2017/04/12 11:23
字数 1047
阅读 50
收藏 0

问题描述

        今天心血来操,升级了一下Android Studio(2.3.1),然后提示我项目的gradle版本也有新版本,于是我就也点击确定了,然后问题就来了,当我clean之后,IDE的message框一直提示我specified for property 'resDir' does not exist,意思就是说resDir这个属性不存在,然后我就纳闷了,平时的话都会明确说那个文件那一行有问题,这次却没有,不明觉厉,于是我用ctrl+Shift+F全局搜索,并没有发现哪里有,run程序也没有影响,而是直接成功了,百度谷歌了一翻,都是说项目某个地方有无效或者错误的资源,给的解决方案都是将app module下的gradle中,buildTypes中的shrinkResources的值改为false,但是这并没有什么用,即使值为true,build依旧报错,run依旧没问题,然后我就无语了,这是什么鬼,

问题解决

        然后我切换项目浏览模式倒project,就嘻嘻端详了一番,于是点开了.gradle目录,发现我里面有两个版本的目录:

然后我思考了一下,就手动把3.3这个文件夹删除了,clean之后发现没有报错了(哈~~有意思)。

总结

网上也有很多升级到Android Studio 2.3之后,都出现了gradle版本不匹配的问题,好像是Gradle的一个bug,大家的解决方案也都是把.gradle文件夹删除之后,再执行clean或者rebuild操作。下面引申学习一下

Android Studio目录介绍:​​​​​​​​​​​​​​​​​​​​​

        .gradle 是gradle运行以后生成的缓存文件夹。

        .idea 是android studio/Intellij IDEA工程打开以后生成的工作环境配置文件夹,包括一些copyright复制版权,编译,编码语言,运行配置,工作空间等配置。

        app 文件夹是你的application module ,其中包含你的源码src以及编译生成的东西

      build 文件夹(这个里面又有四个文件夹,其中outputs为生成的apk包存放的地方,其它,另外generated文件夹也会有某些aidl生成的java文件在这里面),以及libs库,build 文件夹为编译时的缓存文件夹,每次运行时都会生成,同时在运行了gradle

        gradle 文件夹中包含的是gradle-wrapper.jar文件,通过配置其中的gradle-wrapper.properties中的distributionUrl 可以给你的项目指定需要使用的gradle版本,这个是个远程的地址。

        .gitignore 文件为git版本控制的忽略清单。

        gradle.build为project全局的配置

       gradle.properties 为gradle的参数配置,其中有注释的java虚拟机的内存大小等配置,有使用的repositories仓库和依赖的gradle脚本。

        *.iml 文件为Android Studio/ Intellij IDEA为每一个module生成的配置文件模块的配置如编译文件夹路径,使用jdk版本等。

        gradlew gradlew.bat 是gradle任务的脚本命令,很长,估计是Linux上面可以用脚本来设置

        local.properties 中配置个人电脑环境中的配置,其实一般也就是SDK在本地电脑的位置

        settings.gradle 文件中可指定project目录中的任何一个文件夹为gradle的module,比如一般默认的指定为include ':app'

这里要注意的是,上面的有些文件是可以删除的,不必一起带着走的,是可以通过build.gradle来生成的,如.gradle .idea build *.iml等文件。每次当你分发给别人的时候,其他人可以使用open ,选中project中的build.gradle文件,来构建成一份完整的gradle工程。

clean 与 invalidate caches restart操作介绍:

1,clean操作的作用是清理项目,可以把module中的build文件夹删除,但是却不能删除.gradle下的文件夹。(工具栏  Build  -->     clean project)

2,invalidate caches restart 操作是清理Android studio缓存,像一些资源索引的缓存文件,执行此操作重启后会重建索引。(工具栏  File  -->     Invalidate Caches /Restart...    ->   Invalidate and Restart        重启Android studio)

相关学习链接:

http://kvh.io/cn/embrace-android-studio-indepth.html#Invalidate-Cache

https://segmentfault.com/a/1190000002963895

© 著作权归作者所有

AlanTang2416
粉丝 2
博文 7
码字总数 3728
作品 0
浦东
私信 提问
android studio的preview看不到布局,不能预览

android studio的preview看不到布局,不能预览 2018年07月27日 09:51:24 梦溪笔记 阅读数:2090更多 个人分类: androiddebug 所属专栏: 一步步学习Android 今天不知道咋的,突然Android S...

QGlaunch
2018/10/25
433
0
Android Studio SDK报错,所有方法均红色警告,但可正常编译运行

今天不知为何,突然遇到了所有方法红色警告,但是项目可以正常编译运行 整理出四种方法,我的电脑上前三种方法都无效,通过第四种方法解决的 clean project rebuild project sync project with ...

lanyu96
2018/10/22
40
0
Android Gradle的理解以及升级Gradle插件3.0.1遇到的坑

Gradle简介 开始填坑之前,先简单聊聊gradle,Gradle其实就是一个构建项目的工具,也就是把那一个个文件、文件夹按照一定的规则关联起来,形成一个项目的工具,它其实不仅仅是用在AndroidSt...

孟飞阳
2018/07/15
396
0
Android studio style 提示主题样式找不到

values 目录下的 styles.xml文件 中设置 style , 提示主题找不到, 报错如下: 从网上找解决方法, 发现 删除v7包 然后sync now 然后clean project 再导入v7包, 在我这没有效果.. 还有在style 前...

lanyu96
2018/12/21
43
0
开发工具总结(4)之Android Studio3.0填坑指南

序言 上篇讲了: 全面总结Android Studio2.X的填坑指南 这篇讲一下AS3.0的坑。。 作为这个世界上走在最前沿的生物“猿”,怎么能对新事物一无所知呢,10月26日,随着Android 8.1 Oreo的预览版...

aweiloveandroid
2017/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.4K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
41
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部