isHarryh / Ark-Pets

Arknights Desktop Pets | 明日方舟桌宠
https://arkpets.harryh.cn
GNU General Public License v3.0
519 stars 33 forks source link

[Bug] Linux环境启动失败 #64

Closed erroreutopia closed 8 months ago

erroreutopia commented 8 months ago

软件版本:v3.0.0 (jar) 运行环境:Kali GNU/Linux Rolling x86_64 java版本: openjdk version "21" 2023-09-19 LTS

问题描述

在Linux下无法启动桌宠,似乎少了某些依赖(libuser32.so) image

程序日志

[Exception] UnexpectedExitCodeException
[Message] The process exited with a non-zero exit code: -1

[StackTrace]
Caused by cn.harryh.arkpets.concurrent.ProcessPool.UnexpectedExitCodeException: The process exited with a non-zero exit code: -1
  at cn.harryh.arkpets.controllers.RootModule$1.call(RootModule.java:160)
  at cn.harryh.arkpets.controllers.RootModule$1.call(RootModule.java:136)
  at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Task.java:1399)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
  at java.base/java.lang.Thread.run(Thread.java:1583)

终端日志

(java:572998): Gdk-WARNING **: 16:13:32.406: XSetErrorHandler() called with a GDK error trap pushed. Don't do that.
[INFO] Launcher: Launching models/492_quercu_witch#4
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[INFO] System: Entering the app of EmbeddedLauncher
[INFO] System: ArkPets version is 3.0.0
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'user32':
libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
Native library (linux-x86-64/libuser32.so) not found in resource path (ArkPets-v3.0.0.jar)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:307)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:467)
    at com.sun.jna.Library$Handler.<init>(Library.java:192)
    at com.sun.jna.Native.load(Native.java:622)
    at com.sun.jna.platform.win32.User32.<clinit>(User32.java:49)
    at cn.harryh.arkpets.EmbeddedLauncher.applyWindowTitle(EmbeddedLauncher.java:102)
    at cn.harryh.arkpets.EmbeddedLauncher.main(EmbeddedLauncher.java:72)
    Suppressed: java.lang.UnsatisfiedLinkError: libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:197)
        ... 6 more
    Suppressed: java.lang.UnsatisfiedLinkError: libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:210)
        ... 6 more
    Suppressed: java.io.IOException: Native library (linux-x86-64/libuser32.so) not found in resource path (ArkPets-v3.0.0.jar)
        at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:281)
        ... 6 more
[WARN] Launcher: Detected an abnormal finalization of an ArkPets thread (exit code -1). Please check the log file for details.
[INFO] Launcher: Launching models/492_quercu_witch#4
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[INFO] System: Entering the app of EmbeddedLauncher
[INFO] System: ArkPets version is 3.0.0
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'user32':
libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
Native library (linux-x86-64/libuser32.so) not found in resource path (ArkPets-v3.0.0.jar)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:307)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:467)
    at com.sun.jna.Library$Handler.<init>(Library.java:192)
    at com.sun.jna.Native.load(Native.java:622)
    at com.sun.jna.platform.win32.User32.<clinit>(User32.java:49)
    at cn.harryh.arkpets.EmbeddedLauncher.applyWindowTitle(EmbeddedLauncher.java:102)
    at cn.harryh.arkpets.EmbeddedLauncher.main(EmbeddedLauncher.java:72)
    Suppressed: java.lang.UnsatisfiedLinkError: libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:197)
        ... 6 more
    Suppressed: java.lang.UnsatisfiedLinkError: libuser32.so: 无法打开共享对象文件: 没有那个文件或目录
        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:210)
        ... 6 more
    Suppressed: java.io.IOException: Native library (linux-x86-64/libuser32.so) not found in resource path (ArkPets-v3.0.0.jar)
        at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:281)
        ... 6 more
[WARN] Launcher: Detected an abnormal finalization of an ArkPets thread (exit code -1). Please check the log file for details.

复现方法

点击"启动"按钮

isHarryh commented 8 months ago

桌宠当前仅支持 Windows 操作系统。这是因为对于桌宠位置和桌面窗口的交互操作等功能需要调用 Win32API(通过JNA实现),所以对其他操作系统不兼容。

未来可能会支持跨平台。