问题标签 [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 投票
1 回答
890 浏览

java - 如何将 jsoup 翻译成 Objective-C?

如何将jsoup翻译成Objective-C?我是一个新手,对Java非常陌生。最近我想通过 j2objc 在我的 iOS 项目中使用 jsoup,但这对我来说似乎很难。

当我执行

有很多包没有找到,比如org.w3c.dom. 我下载了这些文件,org.w3c.dom但是有很多包没有找到,很难处理。它们可能属于 javax.net 等 Java 的标准库,我如何完成 jsoup 的翻译?那可能吗?谢谢!

0 投票
1 回答
1087 浏览

java - 在 Android 中将 UI 与逻辑分离

我最近阅读了Gmail 团队的一篇博客文章,内容是他们用于为 Inbox for Gmail 开发不同平台版本的方法。简而言之,他们用 Java 编写所有东西(基本上是为 Android 编写的),但将所有 UI 代码与共享逻辑代码分开。然后对于 iOS,他们以特定于平台的 iOS 方式重新实现 UI,但使用他们开发(并开源)的名为J2ObjC的程序将共享逻辑从 Java 转换为 Objective C。

我知道如何让它在 iOS 上运行,但我应该如何在 Android 上安排课程?我知道我需要为共享逻辑的不同部分创建单独的类,但我实际上如何做到这一点,以便 a)所有共享逻辑都在它自己的目录中,所以我可以轻松地自己引用它,并且 b)我可以仍然从我的活动中引用它。

根据我的搜索,我认为我需要使用MVP模式,但我不是 100% 确定。

0 投票
1 回答
709 浏览

java - 在 j2objc 中使用番石榴

我正在尝试将番石榴与 j2objc 一起使用,但出现错误:

在跑步的时候:

j2objc Test.java

其中Test.java包含:

我已经下载了最新版本 0.9.5 并将其添加到.profile

为了使用番石榴,我还需要做什么?

谢谢!

0 投票
1 回答
1816 浏览

xcode - XCode mvn:没有这样的文件或目录

我已经在我的 Mac OSX Yosemite 上安装了 Maven,终端上的 maven -version 显示版本。最初我尝试使用 brew ,即使它成功了,但它并没有解决 XCode 中的问题。我是 Mac OSX 和 XCode 的新手,因此非常感谢您提供分步指南。我不确定是否需要任何插件来构建项目

0 投票
1 回答
382 浏览

objective-c - J2Objc Translator 不在 Eclipse Luna 中生成文件

我在 10.10 版的 Mac 中使用 Eclipse Luna。我尝试从 Eclipse Market Place 安装 J2Objc 插件。以下是 J2Objc 首选项、属性、输出文件夹和输出的配置。但是文件不是在各自的目录中生成的。请喜欢一个解决方案。

J2Objc 首选项 喜好 属性 特性 输出文件夹 导出目录 输出 输出

0 投票
1 回答
870 浏览

objective-c - j2objc 编译错误:架构 arm64 的未定义符号:

运行 j2objcc -o blssmibi BLSSMIBI.o 时出现以下错误

体系结构 x86_64 的未定义符号:“_OBJC_CLASS_$_Curve”,引用自:BLSSMIBI.o ld 中的 objc-class-ref:未找到体系结构 x86_64 的符号:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)

我应该怎么做才能解决这个问题?

0 投票
1 回答
916 浏览

java - j2objc gradle 插件 - 在项目应用程序中找不到路径为“test”的任务

我正在尝试使用 j2obc for gradle 将我的 android 应用程序移植到 iOS,但是我收到了这个错误并且似乎无法弄清楚如何修复它。

完整的东西:

0 投票
1 回答
308 浏览

ios - j2objc 错误添加番石榴(When.o 丢失)

我正在玩 j2objc 看看我是否可以在我的项目中使用番石榴。

我的项目非常简单:为 j2obcj ( https://github.com/google/j2objc/wiki/Xcode-Build-Rules ) 配置了一个单视图应用程序,并在appDelegete.m

尝试编译它会产生错误:

链接时似乎有问题,没有When.olibjre_emul.a.

我尝试运行以下行没有任何问题,只是为了检查javax包是否在那里

还检查了SAXParser.ilibjre_emul

但是在尝试的情况下When

我遇到了一个与番石榴类似的错误

检查后libjre_emul没有When.o

我的设置是:

我尝试了不同的版本(0.9.5、0.9.4、0.9.3、0.9),但错误仍然存​​在。

总之,据我所知,没有办法将番石榴与 j2objc 一起使用,因为它取决于缺少的符号。

希望有人能证明我错了吗?我真的很想在实际项目中开始使用 j2objc!

提前致谢!圣诞节快乐!

0 投票
1 回答
1073 浏览

xcode - pthread_kill 中的 svc #128 意外闯入调试器?

我在 Xcode 中看到调试器出现意外中断,这与svc #128调用 pthread_kill 以向另一个线程发出信号的 ARM 指令有关。我已经在 iOS 上看到了一些与此问题相关的 StackOverflow 问题 - 但它们对我没有帮助。在这种情况下,重复执行 Debug->Continue (^⌘Y) 可以解决问题并继续执行而没有任何明显的副作用。此外,如果它在调试器之外运行,则该应用程序可以正常工作。我的目标是了解为什么会发生这种情况,并避免闯入调试器,除非是有意的。

是否有我可能不小心设置的 Xcode 设置中断了这些信号?

我正在使用 Google 的 Java to Objective-C Transpiler (j2objc),尽管其他 iOS 开发人员提到了这个与 j2objc 无关的问题,所以我不认为这是原因。当 j2objc Java Runtime Environment Emulation 项目向其他阻塞线程发出信号时,就会发生这种情况。它始终有 3 个线程要发出信号。执行 Debug->Continue 3 次后,程序继续执行,没有问题或明显的副作用。项目中没有断点。

应用程序在启动时生成另一个使用 Java DatagramSocket 类的线程。Java 代码工作正常。转译的 Objective-C 代码也可以正常工作,除了烦人的调试器中断。

这是中断时的堆栈帧:

内核 pthread_kill 方法中的本地程序集...

堆栈帧中最接近的非内核函数是signalBlockedThreads. 当我的代码关闭套接字时,signalBlockedThreads遍历所有线程,寻找那些针对特定文件描述符阻塞的线程(我假设这对应于刚刚关闭的端口号)。对于那些相关的阻塞线程,它们每个都用 pthread_kill 发出信号。方法代码复制如下。

对于文件链接,即使这是一个 Java 文件,它也嵌入了由 j2objc 转译器保留的 Objective-C 代码:

https://github.com/google/j2objc/blob/765354b620b2c0248945b27062209620d4cf5e40/jre_emul/android/libcore/luni/src/main/java/libcore/io/AsynchronousCloseMonitor.java#L89

调试尝试没有成功: * 添加和删除“所有异常”断点 - 这没有透露任何内容 * 删除 closeSocket 调用 - 避免问题但显然不是保持套接字打开的解决方案

0 投票
2 回答
1142 浏览

ios - NSUrlConnection 同步请求,没有以下重定向

问题

我需要执行一个同步 HTTP 请求,而不需要遵循重定向,最好不使用实例变量,因为这将被合并到j2objc项目中。

我试过什么

我试过使用NSURLConnection sendSynchronousRequest,不幸的是不能轻易被告知不要遵循重定向。

背景

在告诉我不应该使用同步请求之前,请记住,这段代码是为了模拟 Java 的HttpUrlConnection,它在行为上本质上是同步的,用于j2objc项目。IosHttpUrlConnections' nativemakeSynchronousRequest当前的实现总是遵循重定向。它应该尊重HttpUrlConnection.instanceFollowRedirects领域

进行了进一步的研究

  • 在异步模式下使用 NSUrlConnection 时,会调用一个委托方法,该方法允许启用/禁用重定向。但是,我需要同步操作。
  • NSUrlconnection 上的这个答案:如何等待完成显示了如何sendSynchronousRequest使用异步请求来实现。但是,我无法修改它以使用委托,因此无法不遵循重定向。

我希望你能帮帮我