gpt4 book ai didi

java - UnsatisfiedLinkError 是什么意思?

转载 作者:行者123 更新时间:2023-12-01 16:59:22 25 4
gpt4 key购买 nike

我已经看到了许多针对此消息变体的具体问题和答案,并且所有这些都仅适用于该特定情况。我很好奇抛出 UnsatisfiedLinkError 时的一般解决方案。这是什么意思?它没有发现什么? .java 文件?我是否错过了链接到它的地方?我得到的那个是在初始化过程中抛出的。

最佳答案

I am curious as to the general solution for when a UnsatisfiedLinkError is thrown.

通用解决方案:

1)读取异常消息。

2) 找出缺少哪个 native 库或 native 方法

3) 提供所需的库和/或配置 JVM,以便它可以找到它。

除此之外,详细信息还取决于具体情况和/或平台。一些可能性包括:

  • 您可能缺少 native 库(例如“.so”、“.dll”)。
  • JVM 无法找到 native 库,因为它不在 JVM 正在查找的位置。
  • native 库版本不正确;例如它没有实现特定的native方法,
  • native 库是 64 位,您需要 32 位,反之亦然。 (32 位 JVM 需要 32 位库,即使在 64 位平台上也是如此。)

What does it mean?

UnsatisfiedLinkError 的 javadoc说:

"Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native."

这就是我们可以肯定地说的……在一般情况下,这就是您所问的问题。

What is it not finding?

见上文。

The .java file?

不。

Did I miss linking to it somewhere?

也许吧,不。这取决于您所说的“链接到它”的含义。

The one I am getting is thrown during the initialization process.

这是典型的。 JVM 需要在类链接期间绑定(bind) native 方法...这通常发生在应用程序启动期间。

And is this usually a problem in the code or a problem in the project settings?

可能是其中之一。或者是其他东西。它还取决于您在哪里绘制“代码”的边界。您是否包含第 3 方依赖项?

如果 native 方法声明不是 >>you<< 编写的代码的一部分,那么它可能与您直接或间接从代码中使用的某些第三方库相关。但异常消息和堆栈跟踪中应该有线索。

关于java - UnsatisfiedLinkError 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com