簡體   English   中英

錯誤:從 Java 項目調用 kotlin class 時無法訪問 KMappedMarker

[英]error: cannot access KMappedMarker When calling kotlin class from Java project

I am migrating a Java android app to Kotlin class for class with Android Studio's Convert Java file to Kotlin file .

我的 android 項目由三個模塊/項目組成,其中頂級項目沒有自己的代碼:

overall
 ├─ app
 └─ model

我已經將model中的文件轉換為 Kotlin 並且它被 Z20F35E630DAF394D88 中的model類識別但是對於app中的課程存在問題。 雖然 class 本身被接受為例如方法參數,但不能引用方法。 例如對於foo.ba() android 工作室將顯示一個帶有 Javadoc 的框,但源文件中的術語帶有紅色下划線,錯誤是Cannot access kotlin.jvm.internal.markers.KMappedMarker

To see if the problem is due to Android Studio, I ran gradle --warning-mode all sudoqapp:assembleRelease in the terminal which fails with error: cannot access KMappedMarker and class 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"
    }
}

apply plugin: 'kotlin'添加到appbuild.gradle中,如https://stackoverflow.com/a/50262680所建議的那樣。

這可能不是我回答的正確線程,但我在使用 okHttpClient(用 Kotlin 編寫)在我的 Java(Java 17 和 Gradle 7.4)項目上調試相同問題時偶然發現了這個線程。 也許這對像我這樣迷失的靈魂有幫助。

我的解決方案是添加requires kotlin.stdlib; module-info.java文件和id 'org.jetbrains.kotlin.jvm' version '1.7.0'build.gradle文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM