Intellij Idea 未找到类异常:kotlin.jvm.internal.Intrinsics

5vf7fwbs  于 2023-04-05  发布在  Kotlin
关注(0)|答案(1)|浏览(574)

我目前正在为Spigot 1.8.8开发一个Minecraft OITC插件!~全部用Kotlin和IntelliJ编写

在开始使用ItemDrops的简单EventHandler时,我遇到了一个问题:一个月一个月一个月一个月一个月
一段时间后,我发现我的代码可能没问题:
我的主要课程:

package me.ysheiny.rarityoitc

import me.ysheiny.rarityoitc.handlers.PlayerHandler
import org.bukkit.plugin.java.JavaPlugin

class RarityOITC : JavaPlugin() {

    val prefix = "[&bRarity&dOITC&f]"
    override fun onEnable() {
        // Plugin startup logic
        logger.info("Plugin Enabled!")

        PlayerHandler(this)
    }

    override fun onDisable() {
        // Plugin shutdown logic
        logger.info("Plugin Disabled!")
    }
}

我的PlayerHandler:

package me.ysheiny.rarityoitc.handlers

import me.ysheiny.rarityoitc.RarityOITC
import org.bukkit.Bukkit
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerDropItemEvent

class PlayerHandler(plugin: RarityOITC?) : Listener {
    init {
        Bukkit.getPluginManager().registerEvents(this, plugin)
    }

    @EventHandler
    fun onPlayerDropItem(event: PlayerDropItemEvent)
    {
        event.isCancelled = true
    }
}

我做了一些研究,发现在构建Kotlin运行时时时有一个异常。我的项目是用maven构建的,下面是我的依赖项:

<dependencies>
        <dependency>
            <groupId>com.sample</groupId>
            <artifactId>sample</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/spigot-1.8.8.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib-jdk8</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-runtime</artifactId>
            <version>1.2.71</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/kotlin-runtime-1.2.71.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-test</artifactId>
            <version>${kotlin.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

由于版本较旧,我在1.8.8中使用了一个本地的spigot依赖。另外,我也尝试手动添加Kotlin运行时,但版本太旧了:Kotlin: API version 1.2 is no longer supported; please, use version 1.3 or greater.
我不知道该怎么办。有人能帮我解决这个问题吗?

2admgd59

2admgd591#

我找到了解决办法

好吧,问题是:我想我只是忘了更新控制哪个dependency被构建到jar中的Artifact。所以信息在pom.xml中,但没有应用到实际的构建中。
因此,对于每个像我一样遇到问题的人来说,搜索解决方案并始终记住更新项目结构中的Artifact。

我的依赖项现在看起来像这样:

<dependency>
            <groupId>com.sample</groupId>
            <artifactId>sample</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/spigot-1.8.8.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-test</artifactId>
            <version>${kotlin.version}</version>
            <scope>test</scope>
        </dependency>

我认为kotlin-runtime不是真正的问题。只要按照Tenfour04的建议将kotlin-stdlib-jdk8更改为kotlin-stdlib即可。

相关问题