Kotlin Foo :: class.java"未解决的参考:Java"错误

Roc*_*Lee 23 kotlin

我正在尝试将我的Java代码转换HomePage.class为Kotlin.我按照Kotlin.org上的说明操作:

的getClass()

要从对象检索类型信息,我们使用javaClass扩展属性.

val fooClass = foo.javaClass

而不是Java的Foo.class使用 Foo::class.java.

val fooClass = Foo::class.java

我有一个名为HomePage的类,它扩展了AppCompatActivity(在Android中).我正在使用Android Studio.我试过了HomePage::class.java,它有一个错误:Unresolved reference: java

在此输入图像描述

我如何让它工作?

mhl*_*hlz 16

问题很可能是你忘了依赖Kotlin反射功能所需的反射库.

在Java平台上,使用反射功能所需的运行时组件作为单独的JAR文件(kotlin-reflect.jar)分发.这样做是为了减少不使用反射功能的应用程序所需的运行时库大小.如果使用反射,请确保将.jar文件添加到项目的类路径中.

资源


Roc*_*Lee 14

事实证明,我使用的是较旧版本的Kotlin,但配置不正确.我编辑了gradle文件以包含最新的beta版本,并选择了配置Kotlin的选项,现在它可以使用了.

在gradle中:

buildscript {
    ext.kotlin_version = '1.0.0-beta-3594'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}
...

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)


Ron*_*ini 11

我放在Gradle的开头(模块应用程序)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)

在依赖项部分

在build.gradle(Project)中

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)