这个错误很难遇到。吾也是编译JNA才遇到。网上查了半天,完全无用。后来反复思考实验,终于成功解决。
错误原因,就是你使用的jna.jar中的libjnidispatch.so编译有问题。去下载一个别人编译好的jna.jar即可。比如:
支持loongarch64的jna-5.10.0.zip-Java文档类资源-CSDN下载
如果是编译,解决之前很难,解决之后就会发现,原来如此简单。具体解决办法(在jna的native目录):
编译产生头文件
ant javah
修改Makefile
大约50行:
# JNA_JNI_VERSION=4.0.1 # auto-generated by ant JNA_JNI_VERSION=6.1.2 # auto-generated by ant
编译libjnidispatch.so
# 注意必须使用make make
打包linux-loongarch64.jar
复制linux-mips64el.jar。
改名为linux-loongarch64.jar
打开新jar,使用jna目录的build/native-linux-loongarch64的libjnidispatch.so替换jar中的同名文件
把包linux-loongarch64.jar复制到jna目录的lib/native下
重新编译
产生的jna.jar就正确了。