Кодовое имя One и последовательные тесты SQLite и получение java.lang.UnsatisfiedLinkError org.sqlite.NativeDB._open (Ljava / lang / String; I) V исключения - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь запустить последовательные тесты с кодовым именем один.

Первый тест открывает симулятор и обращается к базе данных 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 голосов
/ 10 января 2019

Это известная проблема, упомянутая здесь: https://github.com/codenameone/CodenameOne/issues/2175

К сожалению, наши попытки исправить это потерпели неудачу. Это точная причина. Плагин SQLite плохо работает с загрузчиками классов.

...