Android Studio 3.1中Ctrl+Click无法跳转资源引用问题求助
解决Android Studio 3.1中Ctrl+Click跳转失效的问题
我之前刚更新到Android Studio 3.1时也碰到过一模一样的问题,不管是布局控件引用还是@Override方法的跳转都变得异常麻烦,折腾了好一阵才找到几个有效的解决办法,分享给你:
通用修复方法
清理IDE缓存并重启
这是解决AS各类索引、跳转问题的首选方案:依次点击File→Invalidate Caches / Restart...,在弹出的窗口选择Invalidate and Restart。等AS重启完成后,大部分跳转异常都会自动修复。重新同步Gradle项目
版本更新后Gradle同步可能不彻底,导致资源索引没有正确生成。点击工具栏上的Sync Project with Gradle Files按钮(大象图标),等同步完成后再测试跳转功能。彻底重建项目
尝试点击Build→Rebuild Project,让AS重新编译整个项目并生成完整的索引文件。这个方法对布局控件(比如你提到的mBinder.fabCart)的跳转失效问题效果特别明显。检查鼠标跳转设置
有时候更新IDE会重置部分设置:打开Settings→Editor→General→Mouse,确认Ctrl+Click to open declaration选项处于勾选状态,避免因为设置被改导致的跳转失效。
针对你提到的具体场景补充
- 对于布局控件跳转(比如
mBinder.fabCart):如果用了Data Binding,确保你的Binding类是正确生成的,Rebuild Project后可以去build/generated/data_binding_base_class_source_out目录下确认Binding类是否包含fabCart的引用;另外也可以先在XML布局文件中点击控件ID,再回到代码里尝试Ctrl+Click跳转。 - 对于
@Override方法跳转:除了上面的通用方法,还可以试试用Alt+Click(Mac上是Option+Click)替代Ctrl+Click,有时候快捷键冲突也会导致这个问题;如果还是不行,检查一下你的方法是否真的正确重写了父类方法,避免因为代码语法问题导致IDE无法识别。
内容的提问来源于stack exchange,提问作者Nikunj Peerbits




