2012-07-26 72 views
1

我在ubuntu上運行我的第一個程序。運行JNI程序

但是,當我試圖運行它的錯誤:發現

public class HelloWorld { 
public native String nativeHelloWorld();  

static { 
    System.loadLibrary("HelloWorld"); 
} 

public void print(){ 
{ 
String str = nativeHelloWorld(); 
System.out.println(str); 
} 
} 


public static void main(String[] args) { 
    (new HelloWorld()).print(); 
     return; 
} 
} 

此錯誤:

Exception in thread "main" java.lang.UnsatisfiedLinkError:HelloWorld.nativeHelloWorld()Ljava/lang/String; 

我怎樣才能解決這個問題?從Getting Stated JNI from SUN site採取

+0

你用android嗎? – Waqas 2012-07-26 07:47:29

+0

是的,我正在使用android。 – TamiL 2012-07-26 09:52:27

回答

0

這些線

確保本地庫駐留在目錄中的一個 本地庫路徑。如果您在Solaris系統上運行,則使用 LD_LIBRARY_PATH環境變量來定義本機 庫路徑。確保它包含包含libHelloWorld.so文件的目錄 的名稱。如果libHelloWorld.so文件 是在當前目錄下,你可以發出以下兩個命令 在標準shell(SH)或KornShell(KSH)建立正確的 LD_LIBRARY_PATH環境變量:

LD_LIBRARY_PATH=. 
export LD_LIBRARY_PATH 
0

對於運行Android JNI程序,你應該看看步驟描述here,您將需要使用此命令

cd <ndk-root>/samples/hello-jni 
<ndk_root>/ndk-build 

成功構建後,您將得到建立,原生碼T他在這個目錄中的.so文件,

\hello-jni\libs\armeabilib\hello-jni.so 

假設你正試圖從SDK執行HelloJNi示例程序。一旦你在libs目錄下得到了這個文件,使用eclipse simple run按鈕運行這個項目,你將擁有你的HelloWorld :)。