cssxsh / mirai-skia-plugin

Mirai Console Skiko/Skia 图像库前置插件
GNU Affero General Public License v3.0
34 stars 1 forks source link

java.lang.UnsatisfiedLinkError: libgif-linux-arm64.so: undefined symbol: XML_ErrorString #13

Closed LTHPKBTE closed 1 year ago

LTHPKBTE commented 1 year ago

报错日志:

2022-10-08 16:01:31 I/mirai-skia-plugin: 文件 libgif-linux-arm64.so 开始下载
2022-10-08 16:01:36 E/mirai-skia-plugin: Exception in coroutine Plugin xyz.cssxsh.mirai.plugin.mirai-skia-plugin of mirai-skia-plugin
java.lang.UnsatisfiedLinkError: /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so: /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so: undefined symbol: XML_ErrorString
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
        at java.base/java.lang.Runtime.load0(Runtime.java:755)
        at java.base/java.lang.System.load(System.java:1953)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.gif.Library.loadLibraryOrCopy(Library.kt:26)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.gif.Library.load$mirai_skia_plugin(Library.kt:65)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaDowloaderKt.loadJNILibrary(MiraiSkiaDowloader.kt:264)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaDowloaderKt$loadJNILibrary$1.invokeSuspend(MiraiSkiaDowloader.kt)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

2022-10-08 16:02:01 I/plugin: Successfully loaded plugin BiliBili Dynamic v3.2.0

之后没有报错,但是相关插件无法使用

LTHPKBTE commented 1 year ago

sha256验证文件无问题 pi@ubuntu:~$ sha256sum /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so 1ddb84977893de05549663c7e9638f7ec23c8377a7f0205afb309d1b77b3be82 /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so

libgif-linux-arm64.so.sha256:1ddb84977893de05549663c7e9638f7ec23c8377a7f0205afb309d1b77b3be82

cssxsh commented 1 year ago

看样子是缺库或者库版本不对 导致函数 XML_ErrorString 缺失 安装 或者 升级 Expat

https://pkgs.org/search/?q=Expat

LTHPKBTE commented 1 year ago

报错时的库信息: libexpat1/focal-updates,focal-security,now 2.2.9-1ubuntu0.4 arm64 [installed,automatic] 手动更新后: libexpat1/now 2.4.7-1 arm64 [installed,local] 报错没变,另昨天再次测试之后此报错不影响插件使用。

2022-10-09 08:29:36 E/mirai-skia-plugin: Exception in coroutine Plugin xyz.cssxsh.mirai.plugin.mirai-skia-plugin of mirai-skia-plugin
java.lang.UnsatisfiedLinkError: /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so: /home/pi/mirai/data/xyz.cssxsh.mirai.plugin.mirai-skia-plugin/lib/libgif-linux-arm64.so: undefined symbol: XML_ErrorString
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
        at java.base/java.lang.Runtime.load0(Runtime.java:755)
        at java.base/java.lang.System.load(System.java:1953)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.gif.Library.loadLibraryOrCopy(Library.kt:26)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.gif.Library.load$mirai_skia_plugin(Library.kt:65)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaDowloaderKt.loadJNILibrary(MiraiSkiaDowloader.kt:264)
        at mirai-skia-plugin-1.1.9.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaPlugin$loadJob$1.invokeSuspend(MiraiSkiaPlugin.kt:25)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
dousha commented 1 year ago

/usr/lib/arm-linux-gnueabihf/libexpat.so 这个文件存在么?

LTHPKBTE commented 1 year ago

/usr/lib/arm-linux-gnueabihf/libexpat.so 这个文件存在么?

不存在。

cssxsh commented 1 year ago

话说 你的 arch 是啥

dousha commented 1 year ago

/usr/lib/arm-linux-gnueabihf/libexpat.so 这个文件存在么?

不存在。

find /usr/lib -name libexpat.so 会有任何输出么?如果没有,请考虑安装 libexpat-dev.

LTHPKBTE commented 1 year ago

话说 你的 arch 是啥

Linux ubuntu 5.15.0-1015-raspi aarch64

LTHPKBTE commented 1 year ago

/usr/lib/arm-linux-gnueabihf/libexpat.so 这个文件存在么?

不存在。

find /usr/lib -name libexpat.so 会有任何输出么?如果没有,请考虑安装 libexpat-dev.

未安装前指令没有输出。 安装后依然报错,指令输出结果/usr/lib/aarch64-linux-gnu/libexpat.so 如果解决不了那就算了,看情况是不影响使用的

cssxsh commented 1 year ago

我修改了 libgif-linux-arm64.so 的编译环境,编译了新版本 2.0.5 请在 mirai-console 的启动参数中加入 -Dxyz.cssxsh.mirai.gif.version=2.0.5,以调整下载的 libgif-linux-arm64.so 版本

cssxsh commented 1 year ago

又根据 lld 的结果 补充了一些库 编译了 2.0.7

cssxsh commented 1 year ago

-Dxyz.cssxsh.mirai.gif.version=2.0.8 解决

本插件下个版本更新 时修复

LTHPKBTE commented 1 year ago

更新后报错

2022-10-15 00:51:46 W/JvmPluginLoader: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.jetbrains.skiko:skiko-awt:pom:0.7.34 in  (https://maven.aliyun.com/repository/public)
org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.jetbrains.skiko:skiko-awt:pom:0.7.34 in  (https://maven.aliyun.com/repository/public)
        at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:369)
        at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0(RunnableErrorForwarder.java:73)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:627)
        at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:244)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:175)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:541)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:526)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:413)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:365)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process(DefaultDependencyCollector.java:353)
        at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:258)
        at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:326)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginDependencyDownloader.resolveDependencies(JvmPluginDependencyDownload.kt:215)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN.linkLibraries(JvmPluginClassLoader.kt:292)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN.linkPluginSharedLibraries$mirai_console(JvmPluginClassLoader.kt:258)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoaderN.linkPluginLibraries(JvmPluginClassLoader.kt:280)
        at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal.__jpi_try_to_init_dependencies$mirai_console(JvmPluginInternal.kt:175)
        at net.mamoe.mirai.console.plugin.jvm.KotlinPlugin.<init>(KotlinPlugin.kt:25)
        at net.mamoe.mirai.console.plugin.jvm.KotlinPlugin.<init>(KotlinPlugin.kt:20)
        at mirai-skia-plugin-1.1.10.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaPlugin.<init>(MiraiSkiaPlugin.kt:13)
        at mirai-skia-plugin-1.1.10.mirai2.jar//xyz.cssxsh.mirai.skia.MiraiSkiaPlugin.<clinit>(MiraiSkiaPlugin.kt)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadService(PluginServiceHelper.kt:51)
        at net.mamoe.mirai.console.internal.util.PluginServiceHelper.loadAllServices(PluginServiceHelper.kt:42)
        at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:170)
        at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl$extractPlugins$findAllInstances$2.invoke(BuiltInJvmPluginLoaderImpl.kt:165)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
        at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:314)
        at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
        at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
        at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
        at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:307)
        at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:786)
        at kotlin.sequences.SequencesKt___SequencesKt.toSet(_Sequences.kt:827)
        at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.extractPlugins(BuiltInJvmPluginLoaderImpl.kt:191)
        at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.listPlugins(BuiltInJvmPluginLoaderImpl.kt:66)
        at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.listPlugins(JvmPluginLoader.kt)
        at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.listAndSortAllPlugins(PluginManagerImpl.kt:192)
        at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.findAndSortAllPluginsUsingBuiltInLoaders(PluginManagerImpl.kt:138)
        at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.loadAllPluginsUsingBuiltInLoaders$mirai_console(PluginManagerImpl.kt:148)
        at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:178)
        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(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
LTHPKBTE commented 1 year ago

旧版+启动参数启动正常。

cssxsh commented 1 year ago

Could not find artifact org.jetbrains.skiko:skiko-awt:pom:0.7.34 in (https://maven.aliyun.com/repository/public)

这是阿里云的锅,和我的代码无关

你可以在 config/Console/PluginDependencies.yml 加入 maven central 官方的链接 https://repo1.maven.org/maven2/