近期参与了一个我很感兴趣的项目,项目内用到了很多新东西,例如组件化、模块化、ARouter路由、MVI框架、Kt高阶用法等等,感觉可以学一段时间…
Gradle相关Blog
- Android Gradle - Gradle、Gradle plugin 基础认知
- Android Gradle - AndroidStudio 中 Gradle 依赖全解
- Android Gradle - 全面加速 Gradle Build 编译
- Android Gradle - Gradle常见异常
这篇起头应该是在2022年11月份,因为项目一直比较忙,拖拖拉拉的到了2022年最后一天,故此抓紧时间补全不足,记录时光 ~
- 所遇场景
- 通用解决
- 基础套餐:clean、rebuild
- 初级套餐:Invalidate Caches / Restart
- 中级套餐:删除通过As自动生成的.gradle、.idea等
- 有效解决
- 检查As版本
- 检查Gradle 版本、引入类型
- 检查Gradle、Gradle Plugin对应版本
- 奇葩解决方式
- open、import 不同方式引入项目
- 资源目录
- xml 预览无效
所遇场景
拉新项目后,项目可正常运行,但是涉及res资源无法直接访问
到,很影响开发效率
,主要涉及以下部分
R
文件找不到(ctrl+鼠标左键)
layout
资源无法直接访问(ctrl+鼠标左键)
drawable
、mipmap
等资源无法直接访问(ctrl+鼠标左键)
layout预览效果无法显示
其中的错误提示,主要有以下几种
Internal Error occurred while analyzing this expression
Cannot find declaration to go to
layout xml 预览失败提示错误 - Failed to initialize editor
关于我遇到的问题,网上的解法各有千秋,有的也是千篇一律,仅于此处总结自我解惑的过程,主要分几个方面
通用解决
基础套餐:clean、rebuild
基础套餐:clean、rebuild 各来一次
初级套餐:Invalidate Caches / Restart
初级套餐:File --> Invalidate Caches / Restart
清理缓存,重启Andriod Studio
中级套餐:删除通过As自动生成的.gradle、.idea等
删除 .gradle、.idea、build
文件后重新build
项目
有效解决
通过该处的解决方式,我解决了以下这些问题
R
文件找不到(ctrl+鼠标左键)
layout
资源无法直接访问(ctrl+鼠标左键)
drawable
、mipmap
等资源无法直接访问(ctrl+鼠标左键)
Cannot find declaration to go to
每一个问题都需要逐步解决,很多时候仅设置一个可能无法解决上述的全部问题
检查As版本
每一个As版本
都有不同的特性,我其中 xml无法预览、部分资源爆红的问题
就是通过升级As版本
解决的(我同事提醒我As有几个版本是存在问题的... 有很多坑...
)~
以下为我最新的As版本,图示
检查Gradle 版本、引入类型
这种处理方式也帮我解决了一部分项目爆红的场景,提升了部分开发效率
将 distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
改为 distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
#Thu Nov 24 15:25:43 CST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
检查Gradle、Gradle Plugin对应版本
AGP和Gradle不匹配或版本较低,可根据AS的提示升级Gradle相关版本;
参考: 各个Android Gradle 插件版本所需的 Gradle...
Android Gradle - Gradle、Gradle plugin 基础认知
奇葩解决方式
open、import 不同方式引入项目
看别人的blog发现有个解决方式:
打开项目的方式不对,应该是import项目而不是直接open项目
~ 例如项目是Test项目
,若直接open该项目,可能会出现Ctrl+鼠标左键
无法实现跳转
的功能,也无法直接点进去看源码。就时候就应该import该项目。
关于这种解决方式,我不太能苟同,仅记录 open、imprt 打开项目的方式!!!
open项目
import项目
资源目录
mark Directory as --> Sources Root
Sources Root
:源根Test Source Root
:测试源根Resources Root
:资源根Test Resource Root
:测试资源根
xml 预览无效
在项目res
文件夹下的values
下的styles.xml
文件中将<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
的Theme
前面加一个Base.
,如下图: