【发布时间】: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 KMappedMarker 和 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"
}
}
【问题讨论】:
标签: java android android-studio kotlin gradle