MaaXYZ / MaaFramework

基于图像识别的自动化黑盒测试框架 | An automation black-box testing framework based on image recognition
GNU Lesser General Public License v3.0
1.31k stars 154 forks source link

[MAA-win-x86_64] 动态链接库(DLL)初始化例程失败 #361

Open hanhuoer opened 7 hours ago

hanhuoer commented 7 hours ago

环境

Windows 10 版本 10.0.19045 系统类型 基于 x64 的电脑 处理器 Intel(R) Core(TM) i7-6700HQ CPU Java 11

描述

最近在做 maa-framework-java 的版本升级,发现在 Windows 平台总是出现动态链接库初始化失败的错误。

无论是何“姿势”反复卸载/安装/重启 Latest Microsoft Visual C++ Redistributable Version 都无法解决此问题,下面有截图安装的情况。

奇怪的是,此前 1.8.8 1.8.9 两个版本都是正常集成,没有见到过这个错误,但在 2.0.0 系列(alpha/beta/release)都是这个情况,总提示我动态链接库错误。

是新版有什么对接方式上的调整吗(Windows)?

哦对了,我在 MacOS aarch64 平台上测试 2.0.0 系列的时候可以正常加载本地库。

展开查看截图
image

相关问题

moomiji commented 7 hours ago

来点 java 详细报错

hanhuoer commented 6 hours ago

来点 java 详细报错

由于这个原因,导致 github 无法上传最小 demo File size too big: 25 MB are allowed, 35 MB were attempted to upload.

所以,这里附上蓝奏云链接 https://wwxq.lanzoue.com/iLmrj2aolskb - [36MB]

图片一直传不上来,贴一下日志吧 ⬇️⬇️⬇️

D:\Tools\Java\RedHat\java-11-openjdk-11.0.8-2\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2023.2.3\lib\idea_rt.jar=11269:D:\Program Files\JetBrains\IntelliJ IDEA 2023.2.3\bin" -Dfile.encoding=UTF-8 -classpath D:\Programs\Gogs\MAA\demo\target\classes;D:\Tools\\MavenRepository\net\java\dev\jna\jna\5.15.0\jna-5.15.0.jar com.exp.App
9月 23, 2024 5:36:42 下午 com.sun.jna.Native extractFromResourcePath
信息: Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@1f89ab83 for /com/sun/jna/win32-x86-64/jnidispatch.dll
9月 23, 2024 5:36:43 下午 com.sun.jna.Native extractFromResourcePath
信息: Found library resource at jar:file:/D:/Tools/Coder/Developer_tools/MavenRepository/net/java/dev/jna/jna/5.15.0/jna-5.15.0.jar!/com/sun/jna/win32-x86-64/jnidispatch.dll
9月 23, 2024 5:36:43 下午 com.sun.jna.Native extractFromResourcePath
信息: Extracting library to C:\Users\H\AppData\Local\Temp\jna-72\jna3519739205846157609.dll
9月 23, 2024 5:36:43 下午 com.sun.jna.Native loadNativeDispatchLibraryFromClasspath
信息: Trying C:\Users\H\AppData\Local\Temp\jna-72\jna3519739205846157609.dll
9月 23, 2024 5:36:43 下午 com.sun.jna.Native loadNativeDispatchLibraryFromClasspath
信息: Found jnidispatch at C:\Users\H\AppData\Local\Temp\jna-72\jna3519739205846157609.dll
9月 23, 2024 5:36:43 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Looking for library 'D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll'
9月 23, 2024 5:36:43 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Adding paths from jna.library.path: null
9月 23, 2024 5:36:43 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Trying D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll
9月 23, 2024 5:36:47 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Loading failed with message: 动态链接库(DLL)初始化例程失败。

9月 23, 2024 5:36:47 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Adding system paths: []
9月 23, 2024 5:36:47 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Trying D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll
9月 23, 2024 5:36:49 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Loading failed with message: 动态链接库(DLL)初始化例程失败。

9月 23, 2024 5:36:49 下午 com.sun.jna.Native extractFromResourcePath
信息: Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@1f89ab83 for D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll
9月 23, 2024 5:36:49 下午 com.sun.jna.NativeLibrary loadLibrary
信息: Loading failed with message: Native library (win32-x86-64/D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll) not found in resource path (D:\Programs\Gogs\MAA\demo\target\classes;D:\Tools\MavenRepository\net\java\dev\jna\jna\5.15.0\jna-5.15.0.jar)
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll':
动态链接库(DLL)初始化例程失败。

动态链接库(DLL)初始化例程失败。

Native library (win32-x86-64/D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll) not found in resource path (D:\Programs\Gogs\MAA\demo\target\classes;D:\Tools\MavenRepository\net\java\dev\jna\jna\5.15.0\jna-5.15.0.jar)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:325)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:481)
    at com.sun.jna.Library$Handler.<init>(Library.java:197)
    at com.sun.jna.Native.load(Native.java:618)
    at com.sun.jna.Native.load(Native.java:592)
    at com.exp.App$MaaController2_0_0.<clinit>(App.java:51)
    at com.exp.App.testV2(App.java:37)
    at com.exp.App.main(App.java:23)
    Suppressed: java.lang.UnsatisfiedLinkError: 动态链接库(DLL)初始化例程失败。

        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:213)
        ... 7 more
    Suppressed: java.lang.UnsatisfiedLinkError: 动态链接库(DLL)初始化例程失败。

        at com.sun.jna.Native.open(Native Method)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:226)
        ... 7 more
    Suppressed: java.io.IOException: Native library (win32-x86-64/D:\Programs\Gogs\MAA\demo\lib\2.0.0\MaaFramework.dll) not found in resource path (D:\Programs\Gogs\MAA\demo\target\classes;D:\Tools\MavenRepository\net\java\dev\jna\jna\5.15.0\jna-5.15.0.jar)
        at com.sun.jna.Native.extractFromResourcePath(Native.java:1141)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:297)
        ... 7 more

Process finished with exit code 1
hanhuoer commented 6 hours ago

来点 java 详细报错

补一下报错截图,刚一直上传失败。

Snipaste_2024-09-23_17-48-26 2

hanhuoer commented 6 hours ago

目前 2.0 系列的测试情况:

操作系统 CPU 备注
Win10 i7 动态链接加载失败,安装了最新的 Microsoft Visual C++ Redistributable Version
Win11 i7 动态链接加载失败,安装了最新的 Microsoft Visual C++ Redistributable Version
MacOS M2 正常加载
MistEO commented 5 hours ago

https://aka.ms/vs/17/release/vc_redist.x64.exe 装的和这个是一个东西吗?

moomiji commented 5 hours ago

https://aka.ms/vs/17/release/vc_redist.x64.exe 装的和这个是一个东西吗?

依赖看起来没问题:https://github.com/hanhuoer/maa-framework-java/issues/1#issuecomment-2367764585

hanhuoer commented 5 hours ago

https://aka.ms/vs/17/release/vc_redist.x64.exe 装的和这个是一个东西吗?

是的,我用你新给的链接试了下,打开会让我修复/卸载。

刚点完修复,重启电脑后录了两段视频,可以看看效果,这是在同一台机器上录制的视频。

image

v2.0.0 加载失败视频

https://github.com/user-attachments/assets/cf52382b-5baf-4a57-8290-66d019896900

v1.8.9 加载成功视频

https://github.com/user-attachments/assets/b4580130-4426-4aa7-b031-cd81af12eefb

MistEO commented 2 hours ago

试一下 Release 包里的 MaaPiCli.exe,你能正常打开吗?如果能应该就不是依赖问题了

hanhuoer commented 1 hour ago

试一下 Release 包里的 MaaPiCli.exe,你能正常打开吗?如果能应该就不是依赖问题了

如图,可以正常打开。

1.8.9 和 2.0.0 都可以正常打开,效果是下图一样的。

现在不同的就是升级后,这边也只是做了本地库版本的替换和接口调整的工作,然后就...所以很奇怪。

image
MistEO commented 1 hour ago

比较奇怪,能打开这个就确定不是依赖问题了,不用再试 vc_redist 了

你试试 alpha.2 版本能不能加载 dll 呢,后面改过一个参数压栈方式,不知道有没有影响

hanhuoer commented 34 minutes ago

比较奇怪,能打开这个就确定不是依赖问题了,不用再试 vc_redist 了

你试试 alpha.2 版本能不能加载 dll 呢,后面改过一个参数压栈方式,不知道有没有影响


这个版本也是一样的问题,我录制了一个视频,里面用了 4 种方式来加载本地库文件,都没有成功。

2.01.0 相比,是有什么特别的新增/改动吗,从 2.0 开始的各个版本就不能像 1.0 那样丝滑接入了。

https://github.com/user-attachments/assets/79651eec-c779-477a-aa3c-80acfb596b4a