iTXTech / mirai-native

强大的 mirai 原生插件加载器
GNU Affero General Public License v3.0
371 stars 141 forks source link

native1.9.0 升级后报错 #78

Closed Pika-Lee closed 3 years ago

Pika-Lee commented 3 years ago

描述这个Bug 之前一直用的是1.8.X,昨天看见1.9.0正式版出了,就去repo那里下载了最新的core和console。但运行Mirai的时候报错,不知道是哪里出了问题,如何才能解决。麻烦各位大佬指点一下,不胜感谢。

复现步骤 1.在repo下载最新的mirai-console-1.0-M3-1.jarmirai-console-pure-1.0-M3-1.jarmirai-core-1.2.2.jarmirai-core-qqandroid-1.2.2.jar 2.将以上四个文件放到mirai根目录下的/content文件夹中,并将旧版本文件mirai-console-0.5.2.jar和mirai-core-qqandroid-1.1.3.jar删除 3.运行根目录下的miraiOK_windows_386.exe 4.加载mirai的时候报错,提示console文件损坏(我从repo下的源文件,没有任何改动过),然后抛出一大堆exception 5.content目录下console文件被自动删除

期望的行为 将原先的native1.8.X升级到1.9.0,并正确加载

截图和日志 before error after

[17:30:37.8313] I MiraiOK 20200629.160938 running at windows-386 [17:30:37.8323] I 此程序以Affero GPL3.0协议发布,使用时请遵守协议 [17:30:37.8332] I 代码库: github.com/LXY1226/MiraiOK gitee.com/LXY1226/MiraiOK [17:30:38.5305] I JRE: openjdk version "1.8.0_252" [17:30:38.5305] I JRE: OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09) [17:30:38.5325] I JRE: OpenJDK Client VM (AdoptOpenJDK)(build 25.252-b09, mixed mode) [17:30:38.5344] I 删除.lastupdate来在下次强制检查更新 [17:30:38.5344] I 启动Mirai... Using proxy: null You are running Mirai-Console-Wrapper under C:\mirai_restore\mirai3 All additional libraries are located at C:\mirai_restore\mirai3\libraries Starting Mirai Console Pure, reset by clear /content/ Starting version check... Fetching Newest Core Version .. Stay on current version. Fetching Newest Console Version of Pure Stay on current version. Version check complete, starting Mirai shadow-Protocol:C:\mirai_restore\mirai3\content\mirai-core-qqandroid-1.2.2.jar Console :C:\mirai_restore\mirai3\content\mirai-console-1.0-M3-1.jar Root :C:\mirai_restore\mirai3/ Found mirai-console file broken, re-downloading... You are running Mirai-Console-Wrapper under C:\mirai_restore\mirai3 All additional libraries are located at C:\mirai_restore\mirai3\libraries Starting Mirai Console Pure, reset by clear /content/ Starting version check... Fetching Newest Core Version .. Stay on current version. Fetching Newest Console Version of Pure Stay on current version. Version check complete, starting Mirai shadow-Protocol:C:\mirai_restore\mirai3\content\mirai-core-qqandroid-1.2.2.jar Console :C:\mirai_restore\mirai3\content\mirai-console-pure-1.0-M3-1.jar Root :C:\mirai_restore\mirai3/ Exception in thread "main" java.lang.NoClassDefFoundError: net/mamoe/mirai/console/MiraiConsoleImplementation at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at net.mamoe.mirai.console.wrapper.MiraiClassLoader.findClass(WrapperMain.kt:275) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at net.mamoe.mirai.console.wrapper.WrapperMain.start$mirai_console_wrapper(WrapperMain.kt:235) at net.mamoe.mirai.console.wrapper.WrapperMain.preStartInNonNative$mirai_console_wrapper(WrapperMain.kt:207) at net.mamoe.mirai.console.wrapper.WrapperCli.run(WrapperMain.kt:143) at net.mamoe.mirai.console.wrapper.WrapperMain.start$mirai_console_wrapper(WrapperMain.kt:241) at net.mamoe.mirai.console.wrapper.WrapperMain.preStartInNonNative$mirai_console_wrapper(WrapperMain.kt:207) at net.mamoe.mirai.console.wrapper.WrapperCli.run(WrapperMain.kt:143) at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:154) at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:14) at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:252) at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:249) at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:267) at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:290) at net.mamoe.mirai.console.wrapper.WrapperMain.main(WrapperMain.kt:176) Caused by: java.lang.ClassNotFoundException: net.mamoe.mirai.console.MiraiConsoleImplementation at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at net.mamoe.mirai.console.wrapper.MiraiClassLoader.findClass(WrapperMain.kt:278) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 30 more

运行环境

更多信息 如果有其他相关的信息可以填写在此处。

PeratX commented 3 years ago

入口函数改了,需要手动启动mirai console

Pika-Lee commented 3 years ago

入口函数改了,需要手动启动mirai console

感谢答复,请问具体应该如何操作呢?如何手动启动mirai console呢?之前我都是直接运行miraiOK_windows_386.exe然后自动加载native的

PeratX commented 3 years ago

50 中有 java -cp 开头的