【发布时间】:2015-03-02 12:42:59
【问题描述】:
我正在尝试使用 scala 开发一个使用 java opencv 3.0.0-beta 的应用程序。
我收到运行时错误: java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
在研究原因时,我创建了以下简单的应用程序,但表现出类似的行为:
import reflect._
import org.opencv.core.Core
import org.opencv.core.Mat
import org.opencv.core.CvType
import org.opencv.imgcodecs.Imgcodecs
object main extends Application {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME)
val what = "something.png"
val mat = Imgcodecs.imread(what)
Imgcodecs.imwrite("something_else.png", mat)
}
主要区别在于,如果作为“sbt run”运行,它会按预期执行。如果从上面删除了适当的行,则代码在 REPL 中失败。
我怀疑这个问题与原问题有关,但没有证据。
如果我在这两种情况下查看 JVM 的内存映射,我都加载了预期的库。
如果检查代码,我找不到 org.opencv.imgcodecs.Imgcodecs.imread_1 的定义
我不知道下一步该去哪里诊断这个问题。
有人遇到过这个问题吗?
谢谢
【问题讨论】:
-
你试过了吗:String what = "something.png"; Mat mat = Imgcodecs.imread(what);而不是使用“val”类型?
-
谢谢哈当。不,我没有。我只是没有想到用java编写它。大部分真正的应用程序是 scala。
标签: scala opencv unsatisfiedlinkerror