java.lang.ExceptionInInitializerError: 在 minecraft kotlin 插件中為 null

buudd1234

我在使用 kotlin 編寫 minecraft 插件時遇到了問題。這是錯誤消息:

[12:37:07 ERROR]: Error occurred while enabling WorkAndGambling v1.0-SNAPSHOT (Is it up to date?)
java.lang.ExceptionInInitializerError: null
        at io.github.buudd.wag.Main.onEnable(Main.kt:10) ~[WorkAndGambling.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:561) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:475) ~[patched_1.17.1.jar:git-Paper-352]
        at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:730) ~[patched_1.17.1.jar:git-Paper-352]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:317) ~[patched_1.17.1.jar:git-Paper-352]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1217) ~[patched_1.17.1.jar:git-Paper-352]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Paper-352]
        at java.lang.Thread.run(Thread.java:831) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Plugin already initialized!
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:229) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:53) ~[patched_1.17.1.jar:git-Paper-352]
        at io.github.buudd.wag.Main.<init>(Main.kt:7) ~[WorkAndGambling.jar:?]
        at io.github.buudd.wag.FunctionsKt.<clinit>(functions.kt:12) ~[WorkAndGambling.jar:?]
        ... 11 more
Caused by: java.lang.IllegalStateException: Initial initialization
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:232) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:53) ~[patched_1.17.1.jar:git-Paper-352]
        at io.github.buudd.wag.Main.<init>(Main.kt:7) ~[WorkAndGambling.jar:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
        at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128) ~[?:?]
        at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350) ~[?:?]
        at java.lang.Class.newInstance(Class.java:642) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:83) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:153) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:414) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:322) ~[patched_1.17.1.jar:git-Paper-352]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.loadPlugins(CraftServer.java:419) ~[patched_1.17.1.jar:git-Paper-352]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:287) ~[patched_1.17.1.jar:git-Paper-352]
        ... 3 more

我注意到錯誤發生在 Main.kt 的第 10 行。那是 loadConfig() 函數。所以,我查看了 Functions.kt:

package io.github.buudd.wag

import org.bukkit.configuration.file.YamlConfiguration
import io.github.buudd.wag.Variables.cfile
import io.github.buudd.wag.Variables.file


fun loadConfig() {
    cfile = YamlConfiguration.loadConfiguration(file)
    try {
        if (!file.exists()) {
            cfile!!.save(file)
        }
        cfile!!.load(file)
    } catch (localException: Exception) {
        localException.printStackTrace()
    }
}

和變量。變量.kt:

import org.bukkit.configuration.file.YamlConfiguration
import org.bukkit.plugin.java.JavaPlugin
import java.io.*
import java.util.*


object Variables {
    private val plugin: JavaPlugin = Main()
    var moneyMap: MutableMap<UUID?, Int?> = mutableMapOf(null to null)
    var joinMap: MutableMap<UUID?, Int?> = mutableMapOf(null to null)
    val file: File = File("plugins/WorkAndGambling/config.yml")
    var cfile: YamlConfiguration? = null
}

主文件

package io.github.buudd.wag

import io.github.buudd.wag.commands.WAGcommand
import io.github.buudd.wag.listener.Listeners
import org.bukkit.plugin.java.JavaPlugin

class Main : JavaPlugin() {
    override fun onEnable() {
        logger.info("Enabling...")
        loadConfig()
        getCommand("sell")?.apply {
            setExecutor(WAGcommand(this@Main))
            tabCompleter = WAGcommand(this@Main)
        }
        server.pluginManager.registerEvents(Listeners(), this)
    }

    override fun onDisable() {
        logger.info("Disabling...")
    }
}

但是,我找不到錯誤發生的原因。抱歉,如果此代碼的問題只是我的錯誤。

Elikill58

該插件已啟用。

這可能是因為:

  • 相同的插件已經在服務器上,但有另一個 JAR 名稱

要修復它,只需取出舊罐子。

  • 另一個插件使用相同的名稱

要修復它,請進入plugin.yml並更改name變量。

  • 您創建此插件的一個新實例,並JavaPlugin創建一個新的接口。這是在Variables課堂上引起的如何解決?

您應該將實例設置為靜態,然後在方法參數/構造函數中傳輸它。

“實例為靜態”的示例:

companion object {
   lateinit var plugin: Main
}

override fun onEnable() {
   plugin = this;
}

靜態方式的來源

“在參數/構造函數中傳輸”的示例:

這取決於您如何使用此變量。你似乎已經為班級做到了WAGcommand

PS:我是 Java spigot 開發人員,所以可能 kotlin 代碼存在問題。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android中的java.lang.ExceptionInInitializerError

java.lang.ExceptionInInitializerError-PowerMockito

获取错误“线程“主”中的异常java.lang.ExceptionInInitializerError”

5.3中的Elasticsearch客户端java.lang.ExceptionInInitializerError

如何修复“线程“main”中的异常java.lang.ExceptionInInitializerError”

Spring + Hibernate + jersey中的java.lang.ExceptionInInitializerError

IntelliJ错误:java:java.lang.ExceptionInInitializerError

错误:java:java.lang.ExceptionInInitializerError IntelliJ

PowerMock抛出java.lang.ExceptionInInitializerError

Gradle compileGroovy java.lang.ExceptionInInitializerError

使用Android Studio的IBM RTC Plain Java Client库中的java.lang.ExceptionInInitializerError

想要使用其Java绑定jnanomsg在Android中实现nanomsg,并获取java.lang.ExceptionInInitializerError

HibernateSearch ElasticSearch集成错误:线程“ main”中的异常java.lang.ExceptionInInitializerError

在多线程应用程序中捕获 java.lang.ExceptionInInitializerError 是否合适?

EC2上的Spark流式传输:线程“主”中的异常java.lang.ExceptionInInitializerError

带有 AppiumFieldDecorator 的 java.lang.ExceptionInInitializerError - JAVA、Cucumber、Appium

java.lang.ExceptionInInitializerError groovy编译器加载错误

任务':common:compileJava'的执行失败。> java.lang.ExceptionInInitializerError

耶拿(Jena)TDB java.lang.ExceptionInInitializerError

Arduino 和 Ubuntu 18.10:java.lang.ExceptionInInitializerError

jSerialComm SerialPort.getCommPorts() 抛出 java.lang.ExceptionInInitializerError

执行我的测试时获取 java.lang.ExceptionInInitializerError

Kotlin:测试中的java.lang.NoSuchMethodError

线程“主”中的异常java.lang.ExceptionInInitializerError原因:javax.xml.bind.DataBindingException:javax.xml.bind.JAXBException

引起:java.lang.ClassCastException: class net.minecraft.world.item.AirItem 不能轉換為 class net.minecraft.world.item.ArmorItem

解决了; 在 minecraft 插件 (Java) 中设置命令参数类型

java.lang.IllegalArgumentException:对于Kotlin和WebView,指定为非null的参数为null

致命异常 java.lang.NullPointerException:null 不能转换为非 null 类型 kotlin.String

java.lang.NumberFormatException:onBindViewHolder中的null