我正在使用this教程在android中使用C,但我在这一行有错误:
CTest ctest = (CTest) Native.loadLibrary("ctest", CTest.class);
这是错误:
引起:java.lang.UnsatisfiedLinkError:找不到JNA native 支持 at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:754) 在com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736) 在com.sun.jna.Native。(Native.java:131) ......还有15个
我把libctest.so放在libs文件夹中。 有什么问题?
答案 0 :(得分:0)
JNA正在尝试加载libjnidispatch.o
但无法找到它。如果在系统上找不到,JNA会尝试从jna.jar
解压缩相应的库,这显然不在您的类路径中。
修改强>
对于android,您必须明确地将libjnidispatch.o
与您的应用程序捆绑在一起。 Android不允许JNA自行解压缩和加载本机库。
另见this answer。