问题标签 [j2objc]

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 投票
2 回答
718 浏览

java - j2objc 真的支持反射吗?

我正在尝试使用 j2objc 来翻译一些 Java 代码。不幸的是,我的代码依赖于反射。j2objc 文档声称支持反射,但是当我尝试导入 eg 时java.lang.reflect.Field,我收到一条错误消息,指出无法解析。

如果我尝试导入我知道不支持的类(例如 Swing),也会遇到同样的错误。

支持文档中提到的其他类,例如 java.util,可以干净地翻译。

是否需要做一些特别的事情才能在 j2objc 中启用反射支持?

0 投票
4 回答
2425 浏览

java - Google 的 j2objc 可以处理和转换二进制 JAR 文件吗?

我希望开始使用移动开发(特别是 iOS),虽然我通常很擅长学习语言,但 Objective-C 几乎每一次都让我感到困惑。因此,查看 j2objc(因为我已经了解 Java),我认为它可能符合我所寻找的要求。

不过,我的问题非常简单:转换器能否正确处理我的源代码引用的情况,例如,仅二进制(字节码)JAR 文件中的 Apache Commons 代码?

0 投票
2 回答
2995 浏览

android - 在 Android 中实现 Model-View-Presenter 的困难

Model-View-Presenter (MVP) 是一种众所周知的 GUI 应用程序设计模式。对于 Android,在纯 Java 模块中实现业务逻辑有助于测试,而无需 Android 模拟器。

但是,由于对 Android 应用程序的 GUI 有特殊要求,我很难在 Android 上实现该模式:

  • Activity 可能在任何时候被销毁(来电,用户按下主页按钮,...),并且在重新创建时它应该处于与离开时完全相同的状态。这与大多数其他 GUI 应用程序不同。

  • 一个 Activity 可以经历许多生命周期状态。它可能会暂停,在这种情况下不应修改 Activity 的 UI。例如,如果某些数据正在后台加载,如果它处于暂停状态,则无法将其传递到 MVP(Activity)的 View 部分。同样,这是一个不寻常的要求。

我已阅读博文MVP for Android并查看了示例源代码。我试图通过使用 MVP 模式实现的最终目标是能够使用转译器j2objc将所有业务逻辑转换为 Objective-C ,以便在 iOS 上实现相同的应用程序时可以重用业务逻辑。

有没有人成功地为 Android 实现了 MVP 模式,在这种情况下,我错过了什么?

0 投票
2 回答
1639 浏览

xcode - 构建规则“输出文件”中的表达式?

你能在 Xcode 的构建规则的“输出文件”部分包含表达式吗?例如:

$(DERIVED_FILE_DIR)$(echo "/dynamic/dir")/$(INPUT_FILE_BASE).m

具体来说,当使用 j2objc 翻译 Java 文件时,生成的文件会保存在基于 java 包的子文件夹中(例如。$(DERIVED_FILE_DIR)/com/google/Class.[hm])。这是没有 using --no-package-directories,由于不同包中的文件名重复,我无法使用它。

问题出在Output Files中,因为 Xcode 不知道如何在正确的位置搜索输出文件。默认位置是$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).m,但我需要执行字符串替换来插入正确的路径。但是,添加 as 的任何表达式$(expression)都会被忽略,因为它从未存在过。

在此处输入图像描述

我还尝试从自定义脚本中导出一个变量并在输出文件中使用它,但这也不起作用,因为输出文件SCRIPT_OUTPUT_FILE_X在自定义脚本运行之前被转换为。

在此处输入图像描述

0 投票
3 回答
264 浏览

ios - 为什么将静态引用传递给类会消耗内存?

仪器屏幕截图

我很难理解为什么这会消耗内存。

我试过了;

  1. 让 ARC 有更多时间进行清理
  2. 创建要传递的全局变量的 __weak 副本
  3. 看着使用 __bridge 或 __bridge_transfer 但我不认为这是合适的。
  4. 公开全局变量并直接引用它(有效,但不切实际)

这个 iOS 目标 c 线程是通过 j2objc 0.9.3 从 Java 应用程序翻译的。

这个翻译后的静态单例存储“全局”,可以从应用程序的任何地方访问(真实代码存储更多的类和回调)。

任何帮助表示赞赏。我是objective-c和ARC的新手。我已经阅读了大量关于 ARC 的内容,但仍然不明白这种内存消耗的原因。


感谢学生 TI 尝试了以下方法。

这不会消耗内存,我打算这样做,但是tball 的新答案(使用 j2objc @AutoreleasePool)显然是最好的选择,所以我将从那里开始。

非常感谢您的所有回答!

0 投票
1 回答
635 浏览

java - 带有外部 java 源的 J2OBJC Xcode 构建规则

我正在使用 J2OBJC Xcode Build Rule Method 将 java 源代码编译为 Objective-C。

https://github.com/google/j2objc/wiki/Xcode-Build-Rules

但是,每次 java 源代码发生更改时,我都必须使用拖放手动将其复制到 Xcode 项目中。

这是我可以从外部java源编译而无需手动复制它们的任何其他方式。

请指教。

0 投票
1 回答
883 浏览

java - 仅从终端使用带有 jre 仿真库的 j2objc 将 java 编译为目标 c

嗨,我想使用 j2objc 从终端将我的 java 代码转换为目标 c。

我需要在终端中设置下面的标志。(jre_emul 是 J2ObjC 的 JRE 仿真库)。

所以编译j2objc的时候应该用JRE仿真库编译。

我怎么能在没有 Xcode 的情况下只使用终端呢?

源码参考 https://github.com/google/j2objc/wiki/Xcode-Build-Rules

0 投票
2 回答
1280 浏览

ios - J2objc 将 .o 文件添加到 Xcode

如何在 xcode 中添加 j2objc 生成的 .o 文件?

使用 Xcode 编译时出现 Apple Mach-O 链接器错误。

我的 .h 文件已添加到 Xcode 中的构建设置/标题搜索路径/{我的 .m 文件目的地}

0 投票
1 回答
87 浏览

native - j2objc java 扩展原生 uicolor

我如何在 java 代码示例中扩展 UIColor,例如使用本机方法。

所以 j2objc 能够编译带有 UIColor 的 java 类扩展。

我不确定如何对扩展部分进行编码。

请帮忙。

0 投票
1 回答
440 浏览

j2objc - j2objc eclipse 插件不工作

我正在尝试使用 J2objC 插件来转换一个工作的 java 项目。我已经下载了最新版本的插件并且正在使用 Eclipse Juno。我的机器上有 J2objC 0.8。我已经设置了一个输出路径,并在插件中尝试了一些不同的设置。但是,当我运行插件时,不会在任何地方写入/复制/导出任何类型的文件。控制台内容如下:J2OBJC Conole

源目录:/Users/name/Desktop/folder/Workspace/projectfolder 目标目录:/Users/name/Desktop/folder/translatedjava/projectfolder 导出完成。