使用 java lambda 调用 kotlin 函数时,Kotlin 无法访问 kotlin.jvm.functions.Function1
Kotlin cannot access kotlin.jvm.functions.Function1 when calling kotlin function with java lambda
我正在尝试从 Java
调用以下 Kotlin 函数
override fun First(list: LinqList<ElementType>, condition: (ElementType) -> Boolean) : ElementType
像这样
int first = list.First(list,(x) -> x == 5);
但我收到以下错误
Error java: cannot access kotlin.jvm.functions.Function1
class file for kotlin.jvm.functions.Function1 not found
我试过谷歌搜索,但我无法在任何地方找到答案
提前致谢
方法 1) 在您的项目文件中搜索 Function1 并将其重命名为 First。
方法 2) 在项目文件中搜索 Function1 并删除所有出现的地方。
当我使用最新的稳定版本(当前为 1.3.30)为我的 Java 模块配置 Kotlin 编译器和运行时时,我的问题得到解决
只需转到 工具 > Kotlin > 在项目中配置 Kotlin > Android 和 Gradle 并选择你的 Java 模块 单个模块 单选按钮 selected 然后 select 您的版本和 OK.
另一种解法:
如果您的 android 项目中有多个模块,请确保您已将以下配置添加到使用 kotlin 的每个模块中:
步骤(1)-项目build.gradle:
// Project build.gradle file.
buildscript {
ext.kotlin_version = '1.3.30'
...
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
步骤(2)- 在使用 kotlin 的每个模块中:
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
...
dependencies {
implementation "androidx.core:core-ktx:1.0.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
我正在尝试从 Java
调用以下 Kotlin 函数override fun First(list: LinqList<ElementType>, condition: (ElementType) -> Boolean) : ElementType
像这样
int first = list.First(list,(x) -> x == 5);
但我收到以下错误
Error java: cannot access kotlin.jvm.functions.Function1
class file for kotlin.jvm.functions.Function1 not found
我试过谷歌搜索,但我无法在任何地方找到答案
提前致谢
方法 1) 在您的项目文件中搜索 Function1 并将其重命名为 First。
方法 2) 在项目文件中搜索 Function1 并删除所有出现的地方。
当我使用最新的稳定版本(当前为 1.3.30)为我的 Java 模块配置 Kotlin 编译器和运行时时,我的问题得到解决
只需转到 工具 > Kotlin > 在项目中配置 Kotlin > Android 和 Gradle 并选择你的 Java 模块 单个模块 单选按钮 selected 然后 select 您的版本和 OK.
另一种解法:
如果您的 android 项目中有多个模块,请确保您已将以下配置添加到使用 kotlin 的每个模块中:
步骤(1)-项目build.gradle:
// Project build.gradle file.
buildscript {
ext.kotlin_version = '1.3.30'
...
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
步骤(2)- 在使用 kotlin 的每个模块中:
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
...
dependencies {
implementation "androidx.core:core-ktx:1.0.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}