Android Studio Java转Kotlin后无法找到R资源类问题咨询
问题描述
从其他位置复制Java代码粘贴到Android Studio时,若选择同意IDE弹出的Java自动转Kotlin提示,转换完成后,当前文件内原本可以正常识别的所有R类资源引用(比如R.drawable、R.string)都会被标记为未解析状态。
已尝试的临时处理方式
目前碰到这个问题时,可以通过以下操作临时绕过异常:
- 先把转换生成的Kotlin代码全部复制出来
- 按
Ctrl+Z(macOS为Command+Z)连续撤销,直到文件里的R资源引用恢复正常解析 - 把之前复制好的Kotlin代码重新粘贴到对应位置,这次粘贴不会触发R类解析异常
出问题的IDE版本:Android Studio Chipmunk 2021.2.1 Patch 1
修复方案
这个是Android Studio Kotlin插件的已知索引bug,自动粘贴转码流程执行完后没有触发R类的重索引流程,按以下优先级操作即可解决:
- Gradle同步修复
直接点击顶部工具栏的「Sync Project with Gradle Files」(大象图标),等待项目同步完成,IDE会重新建立资源索引,R类引用会自动恢复,不需要反复撤销粘贴。 - 清除缓存重建索引
如果同步Gradle后问题还存在,依次打开顶部菜单File > Invalidate Caches...,勾选Clear file system cache and Local History后点击Invalidate and Restart,等IDE重启完成、全量索引建好后异常就会消失。 - 关闭高风险自动转码配置
要是频繁碰到这个bug,可以直接关掉粘贴自动转Kotlin的提示:打开Settings > Editor > General > Smart Keys,找到Convert Java code to Kotlin on paste配置项,把默认的Ask改成No。后续需要把Java转成Kotlin时,手动选中Java代码,按快捷键Ctrl+Alt+Shift+K(macOS为Option+Shift+Command+K)触发转换即可,这个手动触发的转码流程不会触发R类索引异常。
内容的提问来源于stack exchange,提问作者Nilesh
相关产品推荐
相关产品推荐

