对于我的项目之一,我需要将我的java class
的本地c代码调用到我的项目中。为此我做了以下步骤。如何使用包含共享库(.so)创建JAR文件
在我的java类中,我声明了一些本地方法,这是我的项目所必需的。即
public native String print(String pM,int len); public native int openPrint();
我发起的库文件,如下图所示
static { System.loadLibrary("print"); }
在此之后,我创建的头文件对于Java代码。
创建的C文件并在此之后我生成的库文件即
libprint.so
使用ndk-build
库文件创建成功在
libs->armeabi->libprint.so
以上在C的方法实现
每当我运行Java应用程序它给错误说,
Exception in thread "main" java.lang.UnsatisfiedLinkError: no print in java.library.path
我该如何解决这个问题。
我想给这种应用到其他Android开发人员,使他们能够创建一个没有做电话本地人,且不产生libprint.so
文件
这意味着我得给我自己的API应用开发这个应用程序。为此我必须创建JAR文件。其中包括java.class
,libprint.so
(共享库)等..
如何创建JAR文件,其中包括libprint.so
也..
我使用Eclipse和开放JDK6做Ubuntu的所有东西上面。
可能的重复:http://stackoverflow.com/questions/2937406/how-to-bundle-a-native-library-and-a-jni-library-inside-a-jar – oers
可能想看一看在相关的问题。 [如何对管束-A-本机库和 - a - JNI的库内侧-A-罐(http://stackoverflow.com/questions/2937406/how-to-bundle-a-native-库和 - a - JNI的库内侧-A-罐子?RQ = 1) – asgs