我試圖從目標C,iPhone 5應用程序調用Java類。我正在使用Xcode 4.5.1。在這個階段,我甚至無法加載虛擬機,而不以下錯誤:Xcode 4.5.1:鏈接器錯誤:NSJavaVirtualMachine,找不到體系結構的符號i386
未定義的符號i386硬件架構:
「_OBJC_CLASS _ $ _ NSJavaVirtualMachine」,從引用:在主 objc級-REF。 ø LD:符號(多個)未找到i386硬件架構 鐺:錯誤:連接器命令失敗,退出代碼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 - >(複製項目到目的地組的文件夾,並創建文件夾參考。 ... - >點擊添加
(它還在構建階段顯示出來 - >鏈接二進制與圖書館)
3)在info.plist中,添加以下屬性:
Cocoa Java Application = Yes
JA va類路徑和Java根目錄
兩者都設置爲存儲我的Java文件的全局目錄。
我想調用Java類Vector
的add和get函數。但我似乎無法將虛擬機加載到Xcode中! 請幫忙。
請確保您的'JavaVM.Framework'具有i386架構(如果您在模擬器中使用它)。對於真實的設備,框架應該支持'armv6 armv7'和可選的'armv7s'(iPhone 5) – Raptor
謝謝。 是的,在「必需的設備功能」中,它顯示它支持ARMv7。如何檢查JavaVM.Framework在模擬器上是否具有i386體系結構?僅供參考,我使用的是64位Mac(Mountain Lion)。 – govind678
你確定JavaVM框架可以在iPhone App中使用嗎?我認爲它只適用於Mac App ... – Raptor