multithreading - 如何修复 Java 绑定(bind) : UnsatisfiedLinkError?

标签 multithreading jar xamarin.android sqlite.net

我一直在 xamarin 中为“kernal/io/serailport”java jar 使用绑定(bind)项目。构建过程将“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);  

现在,有趣的是,应用程序运行良好,但是当我在 android 项目中包含“sqlite-net-pcl”以进行 sqlite db 访问时,它给出了下面提到的异常:-
Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lkernal/io/serialport Unhandled Exception  

仅当我在 android 项目 xamarin 中添加“sqlite-net-pcl”库时才会出现此错误。

我想这个问题与线程有关。如果android项目中不包含“sqlite-net-pcl”,则绑定(bind)项目中的c#代码调用方法会在主线程中正常执行,因此不会引发异常并且应用程序工作正常,但是,当“sqlite-net-pcl “在android项目中添加,我认为sqlite pcl库中的某些东西会在另一个线程中调用绑定(bind)项目方法,因此引发了上述异常。

现在,我的问题是如何让 c# 代码调用绑定(bind)项目方法在主线程中运行,或者我可以让 slqite-net-pcl 库在不推荐的主线程上运行。

如果我的猜测是错误的,那么引发异常的原因可能是什么,我该如何解决。
谢谢

最佳答案

尝试通过自己构建来使用 SQLite.NET 依赖项。 IE。添加 SQLite.NET 项目解决方案作为应用依赖项,而不是使用 nuget 版本。

关于multithreading - 如何修复 Java 绑定(bind) : UnsatisfiedLinkError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41438799/

相关文章:

Swift 线程 : When to use DispatchQueue. main.async?

c++ - 使用并行线程的矩阵乘法

java applet 中的外部 jar 出现 java.lang.NoClassDefFoundError

android - 选项卡内的 fragment 在初始加载时不会显示

c++ - 条件变量、互斥锁和锁的区别

java - 多线程环境下连接池超时问题

xamarin - Xamarin Studio 中的 "Execution Failed"错误

c# - Xamarin - 查看设备连接到 Wifi 网络的可靠方式 (Android)

java - Java 项目中的类路径问题

java-如何使用一些用户定义的参数部署远程计算机上的 jar 文件