首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin Foo::class.java“未解析的引用: Java”错误

Kotlin Foo::class.java“未解析的引用: Java”错误
EN

Stack Overflow用户
提问于 2015-12-08 06:20:50
回答 12查看 27.8K关注 0票数 32

我正在尝试将我的HomePage.class的Java代码转换成Kotlin。我正在遵循Kotlin.org上的说明:

getClass()

为了从对象中检索类型信息,我们使用javaClass扩展属性。

val fooClass = foo.javaClass

使用Foo::class.java代替Java的Foo.class

val fooClass = Foo::class.java

我有一个名为HomePage的类,它扩展了AppCompatActivity (在安卓中)。我使用的是Android Studio。我尝试执行HomePage::class.java,但出现了一个错误:Unresolved reference: java

我怎么才能让它工作呢?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2015-12-08 23:19:26

这个问题很可能是您忘记了依赖于Kotlin的反射函数所需的reflection libraries

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

Source

票数 25
EN

Stack Overflow用户

发布于 2015-12-08 06:43:42

事实证明,我使用的是一个旧版本的Kotlin,而且它的配置不正确。我编辑了gradle文件以包含最新的beta版本,并选择了配置Kotlin的选项,现在它可以工作了。

在gradle中:

代码语言:javascript
运行
复制
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"
}
票数 17
EN

Stack Overflow用户

发布于 2017-12-13 23:53:56

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

代码语言:javascript
运行
复制
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

代码语言:javascript
运行
复制
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

代码语言:javascript
运行
复制
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

在依赖项部分中

在build.gradle (项目)中

代码语言:javascript
运行
复制
buildscript {
    ext.kotlin_version = '1.2.0'
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34144392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档