Я использую Binding Project в xamarin для java jar "kernal/io/serailport". Процесс сборки предоставляет «serial_port.so» как общую библиотеку объектов. C# строка кода вызова функции, присутствующие в serial_port.so как: -Как я могу исправить привязки Java: UnsatisfiedLinkError?
// This line calls java serialport class present in serial_port.so library refrenced in android project.
serialPort = new Kernal.io.SerialPort(device, Baudrate, 0);
Теперь, забавная часть, приложение работает хорошо, но когда я включаю «SQLite-сеть-ПКЛ» в андроида проекта SQLite доступ дб Это дает исключение указанному ниже: -
Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lkernal/io/serialport Unhandled Exception
этой ошибка возникает только тогда, когда я добавить «SQLite-нетто-ПКЛ» библиотека в андроиде Xamarin проекта.
Я думаю, проблема связана с потоками. Если «sqlite-net-pcl» не включен в проект android, тогда метод вызова кода C# в проекте привязки обычно выполняется в основном потоке, из-за которого не возникает никакого исключения, и приложение работает нормально, но когда «sqlite-net-pcl »добавлен в проект андроида, я думаю, что кое-что в библиотеке sqlite pcl вызывает вызов метода связывания проекта в другом потоке, из-за которого вызывается вышеупомянутое исключение.
Теперь, вопрос в том, как я могу сделать вызов метода связывания кода C# в основном потоке, или я могу заставить библиотеку slqite-net-pcl работать в основном потоке, который не рекомендуется.
Если моя догадка неверна, то какова может быть причина возбуждения исключения и как я могу это решить.
Thankyou
Удивительный! ваш трюк решил проблему, спасибо @Niraj Adhikari. – codemilan