问题标签 [j2objc-gradle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
419 浏览

ios - J2OBJC_HOME 在 Settings.xcconfig 中未正确定义

我必须在我的 Xcode 项目中包含 *.jar 文件,所以我决定使用 j2objc 将它们转换为 Objective C。我尝试配置我的项目但没有成功,所以我只是从这里这里下载了一个示例项目。由于相同的错误,它们都无法编译

J2OBJC_HOME 在 Settings.xcconfig 中未正确定义,当前设置为 '../j2objc-dist' 命令 /bin/sh 失败,退出代码为 1

看起来我使用了错误的路径,这是我的 Settings.xcconfig

J2OBJC_HOME = ${HOME}/j2objc;

HEADER_SEARCH_PATHS = "${J2OBJC_HOME}/frameworks/JRE.framework/Headers"; FRAMEWORK_SEARCH_PATHS = "${J2OBJC_HOME}/frameworks";

我尝试了许多不同的路径但没有成功此时我的 j2objc 文件夹路径是:/Users/username/j2objc

感谢您的任何建议

0 投票
0 回答
93 浏览

java - 使用 j2objc 将 java 代码转换为目标 c 代码时面临的问题

我正在尝试将一些 java 文件转换为目标 c 类。但我在这里面临一些问题。请检查下面的图片。

我给出的命令: 点击这里查看我给出的命令

我得到的错误:单击此处检查我得到的错误

所有的 java 文件都存在于源路径中,但是我得到了这个错误。

0 投票
2 回答
399 浏览

ios - 为 iOS 或替代方案编译 Apache 通用数学

我正在尝试为 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 文件并尝试编译它,但它显示该库中的包错误。

源代码目录结构

收到这么多抱怨找不到包的错误这是其中的一个示例:

更新 1

使用以下命令:

我能够生成 Objective-C 类。但是这些类在几乎所有具有类似路径的导入中都会出错,

错误 :

'org/apache/commons/math3/FieldElement.h' 文件未找到

所有编译时错误都已解决。尝试使用类,看看它是否有效。我会在一段时间内发布答案。