對於我的項目之一,我需要將我的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