尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError

新手上路,请多包涵

我有一个小的 webdriver.io 项目,只是为了第一次试验它。我现在想添加魅力报告,但是当我尝试运行 allure open 我得到以下异常,我不知道我必须在哪里解决这个问题:

 Starting web server...
2021-05-04 22:06:43.669:INFO::main: Logging initialized @349ms to org.eclipse.jetty.util.log.StdErrLog
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
        at java.base/java.lang.Runtime.load0(Runtime.java:768)
        at java.base/java.lang.System.load(System.java:1837)
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
        at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
        at java.base/java.lang.System.loadLibrary(System.java:1873)
        at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
        at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
        at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
        at java.desktop/java.awt.Desktop.isDesktopSupported(Desktop.java:328)
        at io.qameta.allure.Commands.openBrowser(Commands.java:220)
        at io.qameta.allure.Commands.open(Commands.java:152)
        at io.qameta.allure.CommandLine.run(CommandLine.java:165)
        at java.base/java.util.Optional.orElseGet(Optional.java:369)
        at io.qameta.allure.CommandLine.main(CommandLine.java:88)

报告生成得很好。只有当我尝试打开它们时,我才会收到此错误。

我通过 npm 安装了 allure-reporter 和 allure-commandline。我将我的项目放在 Debian WSL 中,并使用 VcXsrv X Server 运行 chromedriver,以防万一。

有没有人知道如何解决此错误或提示要查找的内容?我希望我给了你足够的信息。如果没有,就说你需要什么。在此先感谢您的帮助!

原文由 Thorondor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 702
2 个回答

在 Ubuntu 20.04 上:

 sudo apt install openjdk-11-jdk

正如 Joakim 在此处评论中 所建议的那样,安装了无头版本。我在 ldd 上遇到了同样的错误,库丢失了。

一般来说改变你的问题不是一个好主意,最好先搜索并在需要时提出一个新的问题,并提供所有细节。

这可能有助于您了解第二个问题的可能原因:

当前平台不支持桌面 API

如果您想使用 Linux,我强烈建议您使用普通的 Ubuntu Linux 安装,WSL 不一样,并且有您在 Linux 中不会遇到的特定问题。如果专用安装不是一个选项,请尝试查找一般问题。预计 shell、docker 和图形相关事物的行为会有所不同,因为这些事物是专门为 WSL 以某些方式实现的。

原文由 Vincent Gerris 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可能缺少一些下游库。

运行它以找出哪些,然后安装它们。

 $ ldd /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

 java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
       at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:380)
       at java.desktop/java.awt.Desktop.browse(Desktop.java:524)
       at io.qameta.allure.Commands.openBrowser(Commands.java:222)

这意味着 WSL 不支持 java.awt.Desktop.browse()

这已经在 Stackoverflow 中提出过。

请参阅 https://stackoverflow.com/a/27881223/775715

原文由 Joakim Erdfelt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题