本帖最后由 GA_空人 于 2016-10-3 07:00 编辑
第一次开发插件,写完之后打包好本地开个服务器进行测试,然而加载阶段直接报错;我尝试过重构掉所有的static/给这个类改名/更换引用的craftbukkit成和我测试环境一样版本的cauldron,但是这个报错就像某个空气人一样.附上报错信息
复制代码附上相关部分的代码
第一次开发插件,写完之后打包好本地开个服务器进行测试,然而加载阶段直接报错;我尝试过重构掉所有的static/给这个类改名/更换引用的craftbukkit成和我测试环境一样版本的cauldron,但是这个报错就像某个空气人一样.附上报错信息
- [06:52:21] [Server thread/INFO]: [Vault][Chat] GroupManager - Chat hooked.
- [06:52:21] [Server thread/INFO]: [EndangerSpecies] Enabling EndangerSpecies v0.1.2
- [06:52:21] [Server thread/INFO]: [EndangerSpecies] 初始化0.1.2
- [06:52:21] [Server thread/ERROR]: Error occurred while enabling EndangerSpecies v0.1.2 (Is it up to date?)
- java.lang.NoClassDefFoundError: com/endanger/sorato/EndangerManager
- at com.endanger.sorato.PluginMain.onEnable(PluginMain.java:40) ~[?:?]
- at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[JavaPlugin.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:368) [JavaPluginLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:410) [SimplePluginManager.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:415) [CraftServer.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:349) [CraftServer.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:500) [MinecraftServer.class:?]
- at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:474) [MinecraftServer.class:?]
- at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:434) [MinecraftServer.class:?]
- at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:335) [lt.class:?]
- at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:620) [MinecraftServer.class:?]
- at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
- Caused by: java.lang.ClassNotFoundException: Failed to remap class com.endanger.sorato.EndangerManager
- at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:488) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:409) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:211) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_102]
- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_102]
- ... 12 more
- Caused by: java.lang.IllegalArgumentException: INVOKESPECIAL/STATIC on interfaces require ASM 5
- at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
- at org.objectweb.asm.ClassReader.a(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
- at org.objectweb.asm.ClassReader.b(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
- at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
- at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-all-5.0.3.jar:5.0.3]
- at net.md_5.specialsource.JarRemapper.remapClassFile(JarRemapper.java:246) ~[JarRemapper.class:?]
- at net.md_5.specialsource.JarRemapper.remapClassFile(JarRemapper.java:232) ~[JarRemapper.class:?]
- at org.bukkit.plugin.java.PluginClassLoader.remappedFindClass(PluginClassLoader.java:453) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:409) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:211) ~[PluginClassLoader.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_102]
- at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_102]
- ... 12 more
- [06:52:21] [Server thread/INFO]: [Essentials] Enabling Essentials v2.0.1-b342

很少用单例.. 直接用静态更好
目测 Cauldron 和 Java8 存在兼容性问题。
尝试换用 Java7 或者升级 Cauldron 版本。
尝试换用 Java7 或者升级 Cauldron 版本。
你用的SpecialSource版本太老,用的ASM4不支持Java8接口里面的default方法。
在这个commit后SpecialSource才支持Java8。
https://github.com/md-5/SpecialS ... d9d48e3026536c6a4a0
推荐把你服务器库的SpecialSource用1.7.2以上版本。不行的话用Java6编插件。
在这个commit后SpecialSource才支持Java8。
https://github.com/md-5/SpecialS ... d9d48e3026536c6a4a0
推荐把你服务器库的SpecialSource用1.7.2以上版本。不行的话用Java6编插件。
liach 发表于 2016-10-4 06:11
你用的SpecialSource版本太老,用的ASM4不支持Java8接口里面的default方法。
在这个commit后SpecialSource ...
感谢,确实是是这个的锅;1.7.10-1388的cauldron已经用了asm5但是用的旧SpecialSource...