旧Java项目新增Kotlin文件遇'Unresolved reference' R问题咨询
解决Android Studio 3.1中Java项目添加Kotlin文件后R无法自动导入的问题
我之前在AS 3.1的Java项目里加Kotlin文件时也踩过这个坑!明明手动导入com.your.package.R就能正常构建,但自动导入和代码补全就是不起作用,clean、重启AS都不管用。下面是我试过的有效解决方法,你可以挨个试试:
1. 检查并匹配Kotlin插件与AS版本
AS 3.1对Kotlin插件的兼容性要求比较严格,版本不匹配很容易导致自动导入失效:
- 打开
Settings -> Plugins,找到Kotlin插件查看版本。AS 3.1推荐搭配的Kotlin插件版本是1.2.30左右,尽量保证插件版本和AS版本适配。 - 如果版本不对,点击
Update更新插件后重启AS。
2. 确保项目build.gradle配置完整添加Kotlin支持
很多时候是项目没正确配置Kotlin环境,导致AS无法识别Kotlin文件中的R引用:
- Project级build.gradle:检查是否添加了Kotlin的gradle插件依赖:
buildscript { ext.kotlin_version = '1.2.30' // 和插件版本保持一致 dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } - Module级build.gradle:确认应用了Kotlin插件并添加标准库依赖:
配置完成后点击apply plugin: 'kotlin-android' dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }Sync Now同步项目。
3. 开启Kotlin的自动导入开关
AS的自动导入设置可能没针对Kotlin开启:
- 打开
Settings -> Editor -> General -> Auto Import - 在Kotlin区域,勾选
Add unambiguous imports on the fly和Optimize imports on the fly (for current project) - 同时检查
Exclude from import and completion列表,确保没有误加你的项目包名。
4. 彻底清除AS缓存
普通clean&build可能没清干净Kotlin相关缓存,试试更彻底的方式:
- 点击
File -> Invalidate Caches / Restart - 在弹出窗口选择
Invalidate and Restart,等待AS重启并重建缓存。
5. 核对Kotlin文件的包名
确保Kotlin文件的包名和同模块下的Java文件包名一致,包名不匹配会导致AS无法自动关联到正确的R文件。
一般做完以上步骤,R的自动导入和代码补全就能恢复正常了。
内容的提问来源于stack exchange,提问作者anoo_radha
相关产品推荐
相关产品推荐

