1

ubuntuで最初のプログラムを実行しています。

しかし、実行しようとするとエラーが発生しました:

 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;

どうすればこのエラーを解決できますか?

4

2 に答える 2

0

AndroidでJNIプログラムを実行するには、ここで説明する手順を確認する必要があります。このコマンドを使用してネイティブコードをビルドする必要があります。

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

ビルドが成功すると、このディレクトリに.soファイルが作成されます。

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

SDKからHelloJNiサンプルプログラムを実行しようとしていると仮定します。そのファイルをlibsディレクトリに取得したら、eclipseの単純な実行ボタンを使用してプロジェクトを実行すると、HelloWorldが作成されます:)。

于 2012-07-26T10:08:41.560 に答える
0

これらの行は、Getting Stated JNI from SUN サイトから取得したものです。

ネイティブ ライブラリがネイティブ ライブラリ パスのいずれかのディレクトリにあることを確認します。Solaris システムで実行している場合、LD_LIBRARY_PATH 環境変数を使用してネイティブ ライブラリ パスを定義します。libHelloWorld.so ファイルを含むディレクトリの名前が含まれていることを確認してください。LD_LIBRARY_PATHlibHelloWorld.so ファイルが現在のディレクトリにある場合は、標準シェル (sh) または KornShell (ksh) で次の 2 つのコマンドを発行して、環境変数を適切に設定でき ます。

LD_LIBRARY_PATH=.
export LD_LIBRARY_PATH
于 2012-07-26T07:45:45.217 に答える