我已经看到了很多具体的问题和对此消息的变体的答案,所有这些仅适用于该特定情况。我很好奇当抛出UnsatisfiedLinkError时的一般解决方案。这是什么意思?什么不找? .java文件?我错过了某处链接吗?在初始化过程中抛出了我得到的那个。
答案 0 :(得分:5)
我很好奇当抛出UnsatisfiedLinkError时的一般解决方案。
一般解决方案:
1)阅读异常消息。
2)找出缺少本地库或本机方法
3)提供所需的库和/或配置JVM以便它可以找到它。
除此之外,细节是特定于案例和/或平台的。一些可能性包括:
native
方法,这是什么意思?
UnsatisfiedLinkError
的javadoc说:
“如果Java虚拟机无法找到声明为native的方法的相应本机语言定义,则抛出该异常。”
我们可以肯定地说......在一般情况下,这就是你所要求的。
什么是找不到的?
见上文。
.java文件?
不。
我错过了在某个地方链接吗?
可能是,不。这取决于“链接到它”的含义。
在初始化过程中抛出了我得到的那个。
这是典型的。 JVM需要在类链接期间绑定native
方法...这通常发生在应用程序启动期间。
这通常是代码中的问题还是项目设置中的问题?
它可能是。或者是其他东西。它还取决于您绘制“代码”边界的位置。你是否包括第三方依赖?
如果native
方法声明不是代码的一部分>>你<<写道,那么它可能与你直接或间接使用你的代码的某些第三方库有关。但是在异常消息和堆栈跟踪中应该有线索。