目的の 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 にまったくロードできないようです。助けてください。