我正在使用 j2objc 在 iOS 中编译和使用 java 库。我遵循了以下流程:
在我开始导入头文件以使用它们之前,我没有收到任何构建错误:
#import "org/library/Class.h"
找不到文件。我错过了什么?
另一方面,我尝试使用手动翻译的库文件(使用终端 j2objc 命令)。如果我将 .h 和 .m 文件放入 j2objc-dist/include 文件夹中,它们会被编辑器识别,我可以使用这些类而不会出现编译错误。但是,当我尝试构建项目时,它会发现 _OBJ_CLASS__$_Java 类型的错误。我试图将这些文件包含到 Xcode 中的编译列表中,并验证了 libjre_emul.a 的路径,但我仍然收到错误消息。
我的库包含包,因此它在树中有多个文件夹。我的偏好是使用第一种方法(原始 Java 源代码)
JAVA 源数据案例:
- 构建规则:
Java 源文件 自定义脚本:
/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/j2objc -d ${DERIVED_FILES_DIR} -sourcepath ${PROJECT_DIR}/src/ ** \ --no-package-directories ${INPUT_FILE_PATH};
输出文件:
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.h
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.m
- 构建阶段
将二进制文件与库链接:
libicucore.dylib
Security.framework
libz.dylib
- 构建设置
链接 - 其他链接器标志:
-ljre_emul -L /Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib -force_load /Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib/libjre_emul.a -l jre_emul -ObjC
搜索路径 - 库搜索路径:
/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/lib
搜索路径 - 用户标题搜索路径:
/Users/xgibert/Desktop/Orekit_iOS/j2objc-dist/include
我的 java 库文件在 Project_root/src 中。树看起来像这样:
root/
src/
org/
orekit/
data/
time/
...
apache/
...
在我的 ViewController.m 文件中,我尝试使用以下行导入但没有成功(找不到文件):
#import "org/orekit/data/DataProvidersManager.h"