我正在尝试为 iOS 编译 Apache 数学。
我正在使用这个叉子:https ://github.com/j2objc-contrib/j2objc-common-libs-e2e-test
这个库正在使用 J2Objc 版本:0.9.8 并且 J2Objc-Graddle 插件也很旧,它抛出了与 ARC 相关的错误。在 Google 之后,我发现将 J2Objc 版本更新到 1.0.1 可以修复它,我更新了版本。文件编译成功,但在归档步骤失败并出现错误:静态库归档程序在归档 liborg.apache.commons-commons-math3-j2objc.a 时失败
我从这里按照步骤操作:http: //dabugger.blogspot.com/2015/03/java-to-objective-c-journey.html
这是详细的日志:https ://gist.github.com/iducool/ef1531302171c1e59fe988ce5e20d37b
如果有人可以告诉我正确或适当的步骤或指出此问题的原因或解决方案,那将非常有帮助。如果有的话,我也很高兴听到这个库的替代品[我已经搜索过但没有找到任何东西]。
更新:
我开始使用 XCode 构建规则来使用 J2Objc,而不是 Gradle 插件。我已经下载了 J2Objc,并且有一个“Hello”示例,它能够运行简单的 Jave 文件。我试过了,它工作正常。
我已将 Apache 数学库添加到同一个项目中(以节省时间进行设置和遇到错误)并将源路径更新到 BuileRules 脚本中。XCode 正在考虑 java 文件并尝试编译它,但它显示该库中的包错误。
收到这么多抱怨找不到包的错误这是其中的一个示例:
error: /Users/myUser/Documents/j2objc-2.4/examples/Hello/Hello/java/org/apache/commons/math3/util/Precision.java:22:
package org.apache.commons.math3.exception does not exist
更新 1
使用以下命令:
./j2objc --build-closure -g -d ./gjava -sourcepath /Users/myUser/Downloads/commons-math3-3.6.1-src/src/main/java `find /Users/myUser/Downloads/commons-math3-3.6.1-src/src/main/java -name '*.java'`
我能够生成 Objective-C 类。但是这些类在几乎所有具有类似路径的导入中都会出错,
#include "org/apache/commons/math3/FieldElement.h"
错误 :
'org/apache/commons/math3/FieldElement.h' 文件未找到
所有编译时错误都已解决。尝试使用类,看看它是否有效。我会在一段时间内发布答案。