3

目的の C、iPhone 5 アプリケーションから Java クラスを呼び出そうとしています。Xcode 4.5.1 を使用しています。この段階では、次のエラーなしでは仮想マシンをロードすることさえできません。

アーキテクチャ i386 の未定義シンボル:

「_OBJC_CLASS_$_NSJavaVirtualMachine」、参照元: main.o ld の objc-class-ref: アーキテクチャ i386 のシンボルが見つかりません。clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)。

これらは私が従った手順です、

1) main.m で:

@autoreleasepool {

      [NSJavaVirtualMachine defaultVirtualMachine]; //Added this line to load the Java VM.

        id vector=[[NSClassFromString(@"java.util.Vector") alloc] init];
        [vector add:@"one item!"];
        NSLog(@"item 1=%@",[vector get:0]);

 return 0;

}

2)JavaVM.Frameworkを次のように追加しました:(右クリック)フレームワーク->「ファイルをプロジェクトに追加」-> JavaVM.Framework->(アイテムを宛先グループのフォルダーにコピーし、フォルダー参照を作成...->「追加」をクリックします

(Build Phases -> Link Binary with Libraries にも表示されます)

3) info.plist に、次のプロパティが追加されました。

Cocoa Java Application = Yes

Java クラス パスと Java ルート ディレクトリ

どちらも、Java ファイルを保存しているグローバル ディレクトリに設定されています。

Java クラスの add 関数と get 関数を呼び出そうとしていますVector。しかし、VM を Xcode にまったくロードできないようです。助けてください。

4

1 に答える 1

1

iOS では NSJavaVirtualMachine を使用できません。Cocoa/Java バインディングは OS X でのみ利用可能であり、そこでも廃止されています。

于 2013-02-28T04:37:08.427 に答える