Android Studio更新后无法解析@NonNull等支持注解求助
我之前更新Android Studio后也遇到过一模一样的情况——代码能正常编译运行,但IDE就是标红提示“无法解析符号”,试了常规的清缓存、同步Gradle都没用,后来靠下面几个方法解决了,你可以挨个试试:
更新依赖配置并切换到兼容的注解库
你用的compile指令已经被Gradle弃用了,现在AGP 3.0+推荐用implementation或api。另外如果你的项目已经迁移到AndroidX(现在大部分新项目都是),旧的com.android.support:support-annotations已经被替换成AndroidX版本了,把依赖改成:implementation 'androidx.annotation:annotation:1.6.0'如果还在使用旧的Support库,就用对应版本的依赖,注意要和你的
compileSdkVersion匹配,比如:implementation 'com.android.support:support-annotations:28.0.0'改完后重新同步Gradle。
开启IDE的注解处理器支持
有时候AS更新后会默认关闭注解处理功能,你可以打开File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing,点击Apply后重启AS,很多时候这个设置重置就是问题根源。检查SDK版本与依赖版本的兼容性
确保你的Module的build.gradle中,compileSdkVersion的版本和注解库的版本一致。比如用support-annotations:28.0.0,compileSdkVersion也必须设为28,版本不匹配会导致IDE无法正确解析注解。手动引入注解库到项目
如果上面的方法都无效,可以试试手动添加注解库:打开File > Project Structure > Libraries,点击+号选择Java,然后找到本地Gradle缓存里的注解库Jar包(一般在~/.gradle/caches/modules-2/files-2.1路径下,对应androidx.annotation或com.android.support.support-annotations的目录),添加后再同步项目。彻底清理AS缓存
普通的File > Invalidate Caches...可能不够彻底,你可以关闭AS,然后删除以下缓存目录:- Windows:
C:\Users\<你的用户名>\.AndroidStudio<版本号>\system\caches - Mac:
~/Library/Caches/Google/AndroidStudio<版本号> - Linux:
~/.AndroidStudio<版本号>/system/caches
删除后重启AS,重新同步Gradle,应该能解决缓存导致的解析异常。
- Windows:
内容的提问来源于stack exchange,提问作者Andi Z.

