Android实战进阶 - 拉取项目代码后多处报红?如资源找不到该如何处理?

近期参与了一个我很感兴趣的项目,项目内用到了很多新东西,例如组件化、模块化、ARouter路由、MVI框架、Kt高阶用法等等,感觉可以学一段时间…

Gradle相关Blog

这篇起头应该是在2022年11月份,因为项目一直比较忙,拖拖拉拉的到了2022年最后一天,故此抓紧时间补全不足,记录时光 ~

所遇场景

拉新项目后,项目可正常运行,但是涉及res资源无法直接访问到,很影响开发效率,主要涉及以下部分

  • R文件找不到(ctrl+鼠标左键)
  • layout资源无法直接访问(ctrl+鼠标左键)
  • drawablemipmap等资源无法直接访问(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+鼠标左键)
  • drawablemipmap等资源无法直接访问(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.,如下图:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/127574935