Android Studio和Kotlin:未解决的引用:also

12
also 可以在 Android Studio 中编译和运行:
val greeted = "World".also { println("Hello $it") }

然而编辑器将alsoit标记为错误,并且不提供intellisense的帮助。apply仍然可以使用,当我进入源代码时,我可以看到applyalso的定义。如何让Android Studio识别also

  • Android Studio 2.3.3
  • kotlin_version = '1.1.3-2'
  • Kotlin插件1.1.3-release-Studio2.3-2

我以前也遇到过这个问题。


我曾经遇到过类似的问题,只需重新启动IDE即可解决。我猜你应该已经尝试了这个Windows里"你是否尝试过重启电脑"的策略。 - guenhter
@guenhter 我刚刚验证了,在Windows和Mac上重启后问题仍然存在 :) - Love
在这种情况下,我想最好的方法是提交一个错误报告。我知道这并不能帮助你,但它会在未来有所帮助。 - guenhter
3
您可以尝试使用“文件 - 无效缓存”功能,然后重新启动。 - JK Ly
@JKLy 尝试了 Invalidate caches,但不幸没有成功。 - Love
显示剩余2条评论
3个回答

7

我尝试了所有可能的方法都没有成功。对我来说,唯一的解决办法是从C:/Users/YourName/.中删除.AndroidStudio文件夹。Android Studio重置后,一切正常运作。


谢谢,这对我很有帮助。我遇到了所有 Kotlin 关键字的问题,例如 apply、until,甚至像 JvmOverload、Throws 这样的注释,在我按照您的建议后一切都正常了。 - easy_breezy
我因为遇到类似的问题而看到了这个答案,它非常好地解决了我的问题。毕竟应该是被采纳的回答,这样其他遇到相似问题的人就可以立即实施这个解决方法。 - FEBRYAN ASA PERDANA

5

在 Kotlin 1.1 中增加了 also 函数,但是您的语言版本设置为 1.0。请前往您的设置/偏好并将 Kotlin 版本更改为 1.1。

输入图像说明


1
这个在重启后生效了。你知道为什么在 Gradle 中配置 1.1 不足以解决问题吗? - Love
这是一个好问题。我不知道。但我的猜测是,AS中的Kotlin编译器没有查看Gradle设置。因此它必须有自己的设置。您可能希望向JetBrains报告这种差异。 - Troy Heninger
这正是我的问题。然而,我已经在过去为该项目多次设置了Kotlin编译器版本1.1,但它总是在某些未知的魔法之后重置... 有没有想法这是Android Studio的错误?还是Kotlin插件的错误? - Erik
可能有人将旧的.iml文件提交到您的代码库中,因此当您进行干净的检出时,它会被重置为先前的版本。如果是这样,我建议您用较新的文件替换.iml文件,或者更好地将.iml文件从代码库中删除并在GIT中忽略它们。 - Troy Heninger

0
在我的情况下,当我将 id 'kotlin-android-extensions'添加到gradle文件(app)并同步后,问题得到了解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接