我一直在使用xamarin中的绑定项目来进行" kernal / io / serailport" java jar。构建过程提供" serial_port.so"作为共享对象库。调用serial_port.so中存在的函数的C#代码行如下: -
// 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-net-pcl'在android项目中为sqlite db访问它给出了下面提到的异常: -
Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lkernal/io/serialport Unhandled Exception
只有当我添加" sqlite-net-pcl"才会出现此错误。 android项目xamarin中的库。
我猜这个问题与线程有关。如果" sqlite-net-pcl"在android项目中没有包含c#代码调用方法在绑定项目中通常在主线程中执行,因为没有引发异常并且app工作正常,但是,当" sqlite-net-pcl"在android项目中添加,我认为sqlite pcl库中的一些东西会在另一个线程中调用绑定项目方法,因为上面提到的异常被引发。
现在,我的问题是如何在主线程中运行c#代码调用绑定项目方法,或者我可以使slqite-net-pcl库在主线程上运行,这是不推荐的。
如果我的猜测是错误的,那么引发异常的原因是什么,我该如何处理呢? 三江源
答案 0 :(得分:1)
尝试自己构建SQLite.NET依赖项。即。将SQLite.NET项目解决方案添加为app依赖项,而不是使用nuget版本。