Nambers / MiraiCP

c++ SDK of Mirai
https://eritque-arcus.tech/MiraiCP/
GNU Affero General Public License v3.0
178 stars 31 forks source link

[Bug Report] Mirai-Console-Loader啓動MiraiCP時發生錯誤 #123

Closed ghost closed 2 years ago

ghost commented 2 years ago

Code of Conduct

问题描述

如題,已經配置好Java_home等變量,Plugin/MCL/Mirai-console已經升級到最新版本。 我的miraicp.json如下:

{ 
"pluginConfig":[
{
"path":"/home/akari/libSagitTarius.so"
}
]
}

一開始使用的是自己寫的插件,不行之後嘗試了MiraiCP-Template,也是一樣的結果

日志

2022-07-22 00:56:51 I/MiraiCP: ⭐MiraiCP启动中⭐
2022-07-22 00:56:51 I/MiraiCP: ⭐github地址:https://github.com/Nambers/MiraiCP
2022-07-22 00:56:51 I/MiraiCP: ⭐MiraiCP版本: 2.11.0-M3, 构建时间: Tue Apr 26 09:35:29 GMT+08:00 2022
2022-07-22 00:56:51 E/miraiCP: java.lang.UnsatisfiedLinkError: 'java.lang.String tech.eritquearcus.miraicp.shared.CPPLib.Verify(java.lang.String)'
java.lang.UnsatisfiedLinkError: 'java.lang.String tech.eritquearcus.miraicp.shared.CPPLib.Verify(java.lang.String)'
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.shared.CPPLib.Verify(Native Method)
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.shared.CPPLib.<init>(CPPLib.kt:84)
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.shared.CPPLib.<init>(CPPLib.kt:59)
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.shared.UlitsKt.loadAsCPPLib(Ulits.kt:73)
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.shared.UlitsKt.loadAsCPPLib$default(Ulits.kt:71)
    at MiraiCP-plugin-2.11.0-M3.jar//tech.eritquearcus.miraicp.PluginMain.onEnable(PluginMain.kt:96)
    at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal.internalOnEnable$mirai_console(JvmPluginInternal.kt:131)
    at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:278)
    at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:35)
    at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt)
    at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt:50)
    at net.mamoe.mirai.console.plugin.PluginManager.enablePlugin(PluginManager.kt:173)
    at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.enableAllLoadedPlugins$mirai_console(PluginManagerImpl.kt:178)
    at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:235)
    at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:464)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:168)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:167)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:52)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.itxtech.mcl.Utility.bootJars(Utility.java:89)
    at org.itxtech.mcl.Utility.bootJars(Utility.java:79)
    at org.itxtech.mcl.Utility.bootMirai(Utility.java:101)
    at org.itxtech.mcl.module.builtin.Boot.boot(Boot.java:109)
    at org.itxtech.mcl.module.ModuleManager.phaseBoot(ModuleManager.java:148)
    at org.itxtech.mcl.Loader.lambda$start$4(Loader.java:189)
    at org.itxtech.mcl.Loader.tryCatching(Loader.java:146)
    at org.itxtech.mcl.Loader.start(Loader.java:189)
    at org.itxtech.mcl.Loader.main(Loader.java:79)

版本

MiraiCP Commit c960f5a86383c049bb7d80daaef2fff10fa8a1d7

组件

Plugin

環境

OS: Arch Linux x86_64 Kernel: 5.18.12-zen1-1-zen

Antares0982 commented 2 years ago

https://github.com/Nambers/MiraiCP-devReleases/tree/main/fix_issues 可能与 #119 重复,链接问题已经修复过了

Nambers commented 2 years ago

我怀疑是由于你插件(dll)依赖的 MiraiCP 库版本和 MiraiCP-plugin 启动器(jar)版本不一致: image https://github.com/Nambers/MiraiCP/commit/c960f5a86383c049bb7d80daaef2fff10fa8a1d7 的版本是 v2.12.0-RC

解决方法: 可以全部换成: https://github.com/Nambers/MiraiCP-devReleases/tree/main/fix_issues2 试一下

ghost commented 2 years ago
2022-07-22 13:14:16 E/MiraiCP: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.Gson.fromJson(Gson.java:963)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.Gson.fromJson(Gson.java:928)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.Gson.fromJson(Gson.java:877)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.Gson.fromJson(Gson.java:848)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar//tech.eritquearcus.miraicp.PluginMain.onEnable(PluginMain.kt:57)
    at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal.internalOnEnable$mirai_console(JvmPluginInternal.kt:131)
    at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:278)
    at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:35)
    at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt)
    at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt:50)
    at net.mamoe.mirai.console.plugin.PluginManager.enablePlugin(PluginManager.kt:173)
    at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.enableAllLoadedPlugins$mirai_console(PluginManagerImpl.kt:178)
    at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:235)
    at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:464)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:168)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:167)
    at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:52)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.itxtech.mcl.Utility.bootJars(Utility.java:89)
    at org.itxtech.mcl.Utility.bootJars(Utility.java:79)
    at org.itxtech.mcl.Utility.bootMirai(Utility.java:101)
    at org.itxtech.mcl.module.builtin.Boot.boot(Boot.java:109)
    at org.itxtech.mcl.module.ModuleManager.phaseBoot(ModuleManager.java:148)
    at org.itxtech.mcl.Loader.lambda$start$4(Loader.java:189)
    at org.itxtech.mcl.Loader.tryCatching(Loader.java:146)
    at org.itxtech.mcl.Loader.start(Loader.java:189)
    at org.itxtech.mcl.Loader.main(Loader.java:79)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.stream.JsonReader.beginObject(JsonReader.java:384)
    at MiraiCP-plugin-2.12.0-RC.mirai2.jar[private]//com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
    ... 30 more

新錯誤(

Antares0982 commented 2 years ago

打包出问题了,一会重打

Nambers commented 2 years ago

试一下 https://github.com/Nambers/MiraiCP/releases/tag/v2.12.0-RC2 确保 jar 和 cpp/hpp 文件版本一致

ghost commented 2 years ago

试一下 https://github.com/Nambers/MiraiCP/releases/tag/v2.12.0-RC2 确保 jar 和 cpp/hpp 文件版本一致

可以了,謝謝!