我是靠谱客的博主 彩色板栗,最近开发中收集的这篇文章主要介绍[常见Bug]Kotlin,编译报错“Unresolved reference: ......”的解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

注:第1、2种情况较常见

第1种可能的情况

原因:

Android Studio中目前的Kotlin插件版本 和 kotlin-gradle-plugin版本不一致。当版本不一致时,检查build.gradle中配置时会有提示,如下图:

不一致

可以看到,当前Gradle配置是1.1.3-2,而ide的插件版本已经升级到了1.1.51。

解决方法:

  1. 根据ide Kotlin插件版本,将build.gradle中kotlin-gradle-plugin版本修改为最新的版本号即可。
  2. 如重编译后未生效未解决,则因为1.1.51版本的gradle插件未下载,可重新启动项目即会自动下载,待下载完成后,gradle自动编译完成即不会再报此类错误。

第2种可能的情况

原因:

ide 某种bug

解决方法:

  1. File –> Invalifate caches/Restart –> Invalifate and Restart;
  2. 更新Android studio;更新Kotlin Plugin;如果用到了Anko,同时更新Anko Plugin。重启;
  3. build.gradle中Anko包版本修改为最新,例如:anko_version = ‘0.10.1’。有些时候build.gradle中不会提示当前Anko是否未最新,这时可以先去更新最新的ide的Anko plugin ,ide的Anko plugin 版本号一般会和Anko包版本号相同,这时可以根据ide的Anko plugin版本号直接填写build.gradle中Anko包版本号,rebuild自动下载和编译即可。

这种情况是我遇到的,最终检查后,发现是因为Anko不是最新版本导致的android.R资源在Anko写法时无法引用,但是在kt代码中并不会报错,故不易找到原因。


第3种可能的情况

原因:

有些时候,因为之前同一项目的Android Strudio关闭时,未正常关闭(如正在编译时关闭),导致该项目仍被java编译器占用;当重新打开该项目是,此时再编译会重启一个编译进程,未正常关闭的进程和新的进程相冲突,可能导致无法编译相关资源的引用关系。

解决方法:

  1. 结束pc中所有android studio相关的、java相关的进程,然后重新打开Android Strudio打开这个项目,rebuild即可。

最后

以上就是彩色板栗为你收集整理的[常见Bug]Kotlin,编译报错“Unresolved reference: ......”的解决方法的全部内容,希望文章能够帮你解决[常见Bug]Kotlin,编译报错“Unresolved reference: ......”的解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部