代号One和SQLite连续测试并接收java.lang.UnsatisfiedLinkError org.sqlite.NativeDB._open(Ljava / lang / String; I)V异常

时间:2019-01-10 02:43:03

标签: java sqlite codenameone

我正在尝试运行代号为1的连续测试。

第一个测试将打开模拟器并访问sqlite数据库并返回true,然后关闭该模拟器。下一个测试将打开另一个模拟器并运行该测试,但是该模拟器无法访问数据库,因此我假设该测试为什么也返回true。

但是,第三项测试确实访问了数据库,这是发生异常的地方。

 [java] [EDT] 0:0:0,949 - Exception: java.lang.UnsatisfiedLinkError - org.sqlite.NativeDB._open(Ljava/lang/String;I)V
 [java] java.lang.UnsatisfiedLinkError: Native Library C:\Users\cocoa\AppData\Local\Temp\sqlite-3.7.151-amd64-sqlitejdbc.dll already loaded in another classloader
 [java] java.lang.UnsatisfiedLinkError: org.sqlite.NativeDB._open(Ljava/lang/String;I)V

我已经搜索了一下,并认为它正在发生,因为未卸载.dll,并且测试正在尝试再次加载它。有没有一种方法可以卸载.dll或一种变通办法,以便可以进行连续测试?

我正在使用sqlite-jdbc-3.23.1.jar(最新版本)

1 个答案:

答案 0 :(得分:1)

这是此处提到的一个已知问题:https://github.com/codenameone/CodenameOne/issues/2175

很遗憾,我们修复它的尝试失败了。这是确切的原因。 SQLite插件不能很好地与类加载器一起使用。