isHarryh/Ark-Pets

[Bug] Linux环境启动失败

Closed this issue · 1 comments

软件版本: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.



复现方法

点击"启动"按钮

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

未来可能会支持跨平台。