【问题标题】:error: cannot access KMappedMarker When calling kotlin class from Java project错误:从 Java 项目调用 kotlin 类时无法访问 KMappedMarker
【发布时间】:2021-04-18 21:49:36
【问题描述】:

我正在将一个 Java android 应用程序迁移到 Kotlin 类,以便使用 Android Studio 的Convert Java file to Kotlin file

我的 android 项目由三个模块/项目组成,其中顶级项目没有自己的代码:

overall
 ├─ app
 └─ model

我已将 model 中的文件转换为 Kotlin,并且 model 中的 Java 类可以识别它。 但是app 的课程有问题。虽然类本身被接受为例如一个方法参数,方法引用是不可能的。例如。对于foo.ba(),android studio 将显示一个带有 Javadoc 的框,但源文件中的术语带有红色下划线,错误为 Cannot access kotlin.jvm.internal.markers.KMappedMarker

为了查看问题是否是由 Android Studio 引起的,我在终端中运行了 gradle --warning-mode all sudoqapp:assembleRelease,但出现 error: cannot access KMappedMarkerclass file for kotlin.jvm.internal.markers.KMappedMarker not found 失败。所以我假设错误出现在自动转换的 build.gradle 文件中。

overall

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.5.0-RC'
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

app 根本没有 kotlin 引用并且

model

apply plugin: 'kotlin'
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
buildscript {
    ext.kotlin_version = '1.5.0-RC'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

【问题讨论】:

    标签: java android android-studio kotlin gradle


    【解决方案1】:

    apply plugin: 'kotlin' 添加到appbuild.gradle 中,这里建议https://stackoverflow.com/a/50262680 有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多