有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity

再编译别人kotlin项目时,gradle编译出错了,找到具体的任务,使用编译命令 gradlew编译看详细输出

gradlew :main:compileDebugKotlin

发现出现的问题是:
有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity_第1张图片
直接报 Unresolved reference: R。
在确保所有的资源文件都导入成功之后,开始google+度娘去查找问题,大致分为四个问题。

1. gradle插件版本存在问题

有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity_第2张图片
首先检查一下自己的gradle版本,当前2019年3月8号gradle:3.3.0插件版本是有问题的,我切换回了3.2.0版本编译通过。如果你的gradle版本是3.3.x的,不妨试一下这个方法。

2. kotlin版本和kotlin-gradle-plugin版本不一致

AS正对这个会有一个黄色的警告:
有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity_第3张图片
此时,将两个版本更换为一致版本即可。

3. AS可能存在换成问题

这个应该是IDEA未知的问题,很难描述,就是你百试不灵的情况下,请File -> Invalidate Caches / Restart 。重启之后,Build -> Rebuild Project

4. 最后一种方案

重新创建一个新的项目,使用最新的gradle和kotlin配置,先把项目运行起来,然后将配置复制到原来的项目中,重新开始。


2019.04.25

kotlin项目中出现了各种千奇百怪的现象,各种Unresolved reference找不到,大致情况如下图:
有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity_第4张图片
我的问题是这样的,我的项目中依赖了两个library,但是有一个library的build.gradle中没有添加插件:


apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

结果就导致了这个千奇百怪的报错现象,所以如果你的kotlin项目存在依赖,那么需要在每个library中添加以上插件,才能使得项目正常运行。

其他原因,可以参考:
1.https://blog.csdn.net/robothost/article/details/78134653
2.https://blog.csdn.net/upupupgoing/article/details/74942043

你可能感兴趣的:(android基础)