我正在尝试从 Objective-C 、iPhone 5 应用程序调用 Java 类。我正在使用 Xcode 4.5.1。在这个阶段,如果没有以下错误,我什至无法加载虚拟机:
架构 i386 的 undefined symbol :
“_OBJC_CLASS_$_NSJavaVirtualMachine”,引用自: main.o 中的 objc-class-ref ld:未找到架构 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 类 Vector
的添加和获取函数。但我似乎根本无法将 VM 加载到 Xcode 中!
请帮忙。
最佳答案
你不能在 iOS 上使用 NSJavaVirtualMachine。 Cocoa/Java 绑定(bind)仅在 OS X 上可用,即使在 OS X 上它们也已被弃用。
关于java - Xcode 4.5.1 : Linker Error: NSJavaVirtualMachine, 找不到体系结构 i386 的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060452/