Kotlin 中的错误但仅使用 Java - 类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter
Posted
技术标签:
【中文标题】Kotlin 中的错误但仅使用 Java - 类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter【英文标题】:Error in Kotlin but using only Java - Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter 【发布时间】:2019-02-18 01:13:35 【问题描述】:我在尝试运行我的 android 应用程序时收到此错误,但我根本没有使用 Kotlin,应用程序是用 Java 编写的...
Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers "private"
【问题讨论】:
我发现了这个问题,因为它被用作First Posts review queue的测试(作为一个好问题的例子)。说真的,我真的不认为这个问题很有用,因为它指的是 OP 设备上损坏的构建环境,而选择的解决方案是“将其关闭然后再打开”。 【参考方案1】:我是这样解决的:
-
删除所有 .gradle 文件夹
使缓存无效/重新启动
对我来说一切都很好。
【讨论】:
而你所说的所有事情都可以通过简单地进行项目重建(Build -> Rebuild project)来完成 对我来说,它仅适用于文件夹的物理删除。重建我试过但没有。 (Build -> Rebuild project) 对我不起作用,但删除文件夹有效。但我仍然想知道,为什么会提出这个问题。 该修复对我有用,但一段时间后错误不断出现。有人找到更永久的解决方案了吗? 我必须每 5 分钟执行一次,这是严重的 Google 智障【参考方案2】:Settings -> Languages & Frameworks -> Kotlin Updates -> Update channel -> Early Access Preview/Stable -> Update -> Restart
或者:
Tools -> Kotlin -> Configure Kotlin Plugin Update -> Update channel -> Early Access Preview/Stable -> Update -> Restart
【讨论】:
我不想删除任何文件夹或使缓存无效,但是从稳定切换到 EAP 更新通道并重新启动 Android Studio 足以让我的项目同步和再次构建。谢谢,+1。 但是,仍然需要使缓存无效以消除 Android Studio 在重启后开始显示的大量红色蠕动线。【参考方案3】:将在 Android Studio 3.3 Canary 14 中修复:https://issuetracker.google.com/issues/115798277
同时,使用 Invalidate Caches/Restart
【讨论】:
【参考方案4】:-
Install 最新的 Gradle 版本(撰写本文时为 1.10.2)。
安装最新版本的 Kotlin 插件:转到设置 Ctrl+Alt+S > 语言和框架 > Kotlin 更新 > 选择更新频道 > 点击【再次检查】 我当前的 Kotlin 插件版本是 1.3.0-rc-57。
执行构建 > 清理项目以删除临时 gradle 文件。
文件 > 使缓存无效/重新启动...
使用 Gradle 文件重新启动同步项目并生成项目 (Ctrl+F9)。
【讨论】:
以上是关于Kotlin 中的错误但仅使用 Java - 类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter的主要内容,如果未能解决你的问题,请参考以下文章