android studio cannot resolve symbol android,Android Studio 里的Cannot resolve symbol XXX

91cfa8df3128

Android

I.背景

事情是这样,一个同事更新替换了一个第三方合作商的aar包,并且push到了服务器,我pull下来后可以正常编译打包出apk,似乎一切都是正常的,但是当我打开用到这个aar包里的某些类的类时发现有些地方红色的,鼠标放上去提示:“Cannot resolve symbol XXX”。

II.现象

Android Studio 无法识别同一个 package 里的其他类,或者无法识别某些方法,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync ,Clean build 都没有用。

III.原因

一个原因可能是因为 Android Studio 之前发生了错误,某些 setting 出了问题;

替换的aar包没有更新版本号,导致AS识别到的是本地缓存的版本(我遇到的就是这个场景),但是 compile 的时候使用的是正确的版本,所以就出现了有些类或者方法提示无法识别但还是可以正常编译打包。

打开这个类提示 .class 文件与 .java 文件不匹配。

IV.解决方法

这看起来是缓存引起的错误,那就清空缓存试试呗。

点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。等待重启后基本上刚才的错误就没有了。

如果还是没有解决,那可以尝试将依赖先去掉,sync gradle,接着再将依赖添加回来,sycn gradle,这个时候多半就正常了,我的环境就需要第二步才正常。

V.本地缓存

我们知道,当通过gradle构建项目时,会将一些远程依赖缓存到本地,默认的缓存目录如下:

Mac OS: /Users/username/.gradle/caches

Windows: C:\Users\username\.gradle\caches

如果你不想用上面的解决方法,也可以尝试直接到文件系统删除相应的缓存文件,只不过这种方式我没有实践过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值