对于我的一个项目,我需要将本机c代码调用到我的java class
。为此我做了以下步骤。
在我的java类中,我声明了一些我的项目所需的本机方法。即
public native String print(String pM,int len);
public native int openPrint();
我启动了如下文件
的库文件static
{
System.loadLibrary("print");
}
在此之后,我创建了关于java代码的头文件。
创建了c文件并在c
在此之后我使用libprint.so
ndk-build
库文件已在libs->armeabi->libprint.so
每当我运行该java应用程序时,它都会给出错误
Exception in thread "main" java.lang.UnsatisfiedLinkError:
no print in java.library.path
如何解决此问题。?
我想将此类应用程序提供给其他Android开发人员,以便他们可以创建此应用程序而无需执行Native调用而无需创建libprint.so
文件
这意味着我必须将自己的API提供给应用程序开发人员。为此,我必须创建JAR文件。其中包括java.class
,libprint.so
(共享库)等...
如何创建包含libprint.so
的JAR文件..
我正在使用eclipse和open-jdk6在ubuntu中完成所有上述工作。
答案 0 :(得分:0)
在Windows中,如果jar使用dll,则必须将dll复制到jar中的根文件夹。之后程序会找到它。
尝试一下,它可能对你有帮助。