问题标签 [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 回答
249 浏览

java - 我正在从从 Java (J2ObjC) 转译的 Swift 非 ARC Objective-C 类进行实例化,它是安全的吗?

我正在为一个项目使用 J2ObjC。我确实设置了所有内容并包含了我的 Java 类。

唯一需要注意的是,我必须禁用 ARC,否则我的 Java 代码库将无法转译/编译。(J2ObjC 本身建议禁用 arc)

由于我无法仅禁用生成的文件,因此我在 Project Inspector -> Target -> Build Settings -> Apple LLVM 8.0 - Language - Objective C -> Objective-C Automatic Reference Counting 中从 Objective-C 禁用了它(否)

然后我在 Swift 中创建了我的 ViewController,并毫无问题地实例化了从 Java 转译的类(生成的 .h 文件的标头包含在桥接头中),并且我不必在 Obj-C 中做任何我应该做的 dealloc/release没有 ARC 的 VC。

这是正常的/泄漏安全的吗?泄漏安全是指如果我实例化一个转译的类对象,在引用计数减少后,它会像 ARC 一样自动释放(我知道 Swift 中不能禁用 ARC)。

我知道我仍然需要注意 Java 类中的引用循环,但这不是我所说的泄漏安全的意思。

0 投票
1 回答
137 浏览

java - 如何更改由 J2Objc 生成的文件

您好,我一直在尝试从工具 j2objc 生成的文件 .m 中更改 url,但 xCode 似乎没有注意到它,当我重新编译整个项目时,它仍然指向从 java 文件生成的 url。

你能帮我弄清楚我怎么能做出这个改变,我一直在寻找几个小时,但我做不到。

0 投票
1 回答
423 浏览

java - j2objc /usr/local/lib//libprotobuf.a(strutil.o) ld:架构 x86_64 的 55 个重复符号

make protobuf由于以下错误,我无法超越该步骤。我阅读了一些博客,他们建议安装brew install protobuf. 做过某事。仍然无法构建。

我正在 Mac 10.11.6 上构建

编辑

我试图导出到

导出 PROTOBUF_ROOT_DIR=~/Downloads/protobuf-3.0.0/src/

因为我在

/Users/jsiddharth/Downloads/protobuf-3.0.0/src/google/protobuf/compiler/code_generator.h

还是同样的错误。我没有导出正确的变量吗?

编辑

  1. 对于 Mac 系统,Unix 工具默认不可用。您首先需要从 Mac AppStore 安装 Xcode,然后从终端运行以下命令:

  2. $ sudo xcode-select --install

  3. 要安装 Unix 工具,您可以按照https://www.macports.org上的说明安装“port” 。对于大多数 Mac 安装,这将驻留在 /opt/local/bin/port 中。

  4. $ sudo /opt/local/bin/port install autoconf automake libtool

现在我面临以下错误

/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result/google/protobuf/stubs/strutil.o /usr/local/lib//libprotobuf.a(strutil.o) ld:55 个重复架构 x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)make[1]:* [/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result /j2objc_protoc] 错误 1 ​​制作:* [protobuf_compiler_dist] 错误 2

0 投票
1 回答
92 浏览

j2objc - 我怎样才能在 j2objc 包中有 kxml2?

kxml2 包位于 j2objc 源代码树 (1.3.1) 中, 在此处输入链接描述

但是编译 j2objc 后我找不到支持的 kxml2。从论坛解释中研究,在此处输入链接描述,似乎这些类不是公共 JRE 或 Android API 的一部分。因此 j2objc 将不支持它。反正有没有手动添加这些包?

0 投票
1 回答
119 浏览

java - J2ObjC JavaUtilHashMap 未在 Swift 中显示

我有一个带有 HashMap 的对象,称为 metadata(类型为HashMap<String, String>),我在 Swift 应用程序中使用它。

对象的所有其他属性都可以通过 Swift 访问(通过桥接头),但元数据不是。

在 Java 中定义这种类型时有什么需要注意的吗?这是代码:

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

ios - 使用 swift 捕获 NSMallocExceptioni

我的用户有时会发现此错误:

myapp(7383,0x1a1471000) malloc: * mach_vm_map(size=67125248) 失败(错误代码=3) 错误:无法分配区域 在 malloc_error_break 中设置断点以调试 2017-04-06 20:33:58.152 myapp[7383:3724816]由于未捕获的异常“NSMallocException”而终止应用程序,原因:“NSAllocateObject(): attempt to allocate object of class 'IOSByteArray' failed' * First throw call stack: (0x183386db0 0x1829ebf80 0x183386cf8 0x183c6b34c 0x10076e6e4 0x10097d3ec 0x10097e35c 0x100977dd4 0x100977bd8 0x100978ff8 0x10096c950 0x10099685c 0x100997360 0x100979ca4 0x100976dcc 0x1002ec30c 0x100332fe4 0x100332e18 0x1003740c4 0x1004070f8 0x1004064ac 0x1021089b0 0x10210806c 0x1021089b0 0x102107710 0x1004072d8 0x1021087ec 0x1004071b0 0x102126bbc 0x10207b2d8 0x10207b374 0x188613dc4 0x1886d17d4 0x18878f0c8 0x18879ca80 0x1884ce5a4 0x18333c728 0x18333a4cc 0x18333a8fc 0x183264c50 0x184b4c088 0x188546088 0x100382a60 0x182e028b8) libc++abi.dylib: terminating with uncaught exception of type NSException

问题是我找不到错误的调用堆栈。我正在使用通过 j2objc 应用程序移植到 objc lib 的 XZ java lib。所以,我可以使用这个库,但我无法捕捉到这个错误。

谷歌分析帮助我并显示了这一行:

"&exd" = "NSMallocException\nTrace:\n\nNSAllocateObject\nIOSByteArray_NewArray\nOrgTukaaniXzLzLZDecoder_initWithInt_withByteArray_\nnew_OrgTukaaniXzLzLZDeco";

因此,似乎发生了错误:

但我无法使用 swift 找到此错误:

请帮我

0 投票
1 回答
118 浏览

java - 如何使用 J2ObjC 在 XCode 中包含 apache commons lang3

试图让我的第一个 j2objc 项目在 XCode 中启动并运行。我有一些 .java 文件,其中一个引用了 apache commons 库中的字符串函数。我收到一条错误消息:

包 org.apache.commons.lang3 不存在

我不知道应该在哪里告诉项目查看 apache 文件夹 - 还是我直接包含我需要的 .jar 文件?我尝试将 commons.lang3 目录添加到Framework Search Pathsand Library Search Paths

0 投票
1 回答
352 浏览

java - J2ObjC - Android 库

我正在尝试使用 J2ObjC 将我的 Android 项目转换为 Objective C 项目。到目前为止,我设法转换了所有不使用任何库的文件。但是,每个使用库的类都会收到错误。例如:error: package android.location does not exist

在文档中,它指出您不能在 J2ObjC 中转换 UI 元素。但该android.location包不包含 UI 元素(据我所知)。有没有办法转换这些类?还是只能转换不使用库的代码?

如果您需要更多信息,请告诉我。

提前致谢 :)

0 投票
1 回答
480 浏览

ios - 如何设置和使用 j2objc

我想首先说我是一个新手程序员。我只学过Java和Android studio,对cmd提示之类的东西知之甚少。我最近发现 j2objc 可以粗略地将我的 java 代码转换为目标 c,并希望让我更容易将我的应用程序转移到 ios。我也知道有一个gradle版本。出于某种原因,youtube 上没有关于设置任何类型的 j2objc 的“教程”。我的 Android Studio 项目在我的 Windows 8 桌面上,而我的 IOS xcode 应用程序在运行 IOS 10.13 的 VM 上。谁能帮我搞定这个工作?(我可能需要你像我 5 岁那样向我解释事情)。