我正在尝试运行代号为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(最新版本)
答案 0 :(得分:1)
这是此处提到的一个已知问题:https://github.com/codenameone/CodenameOne/issues/2175
很遗憾,我们修复它的尝试失败了。这是确切的原因。 SQLite插件不能很好地与类加载器一起使用。