在 Android 上运行 Objective-C 静态库
Posted
技术标签:
【中文标题】在 Android 上运行 Objective-C 静态库【英文标题】:run objective-c static library on Android 【发布时间】:2013-11-27 08:57:05 【问题描述】:如何为 android 应用程序运行带有 ios 依赖项的 Objective-c 静态库“.a”? 细节: 我们有带有objective-c 框架的iOS 项目(在java 上定制并且没有类似物)。它应该在安卓上运行。 Android NDK 无法与 iOS 依赖项一起运行 - 这是一个主要问题
【问题讨论】:
是什么让您认为这完全有可能?您应该编写了一个可供 iOS 和 Android 使用的 C/C++ 框架。 我有这个框架的 .h 和 .cpp 文件。我们应该依赖这个库。或者我们可以创建静态“.a”库来使用它们。问题:如何? Apportable 已关闭。请参考这个帖子解决问题:***.com/questions/14477768/… 【参考方案1】:您不能直接将目标 c 库添加到 android 项目,但您可以尝试使用此工具:http://www.apportable.com,它可以让您在 android 上运行目标 c 代码。
【讨论】:
转换成apk文件的工具。 是的,这是将客观 c 代码用于 android 的唯一方法。如上所述,您不能将objective-c 库直接链接到android 项目。关于该选项,它是一个选项,因为您想要的选项不存在(并且它在技术上不存在,因为 android 不“理解”objective-c 代码。如果您愿意,您可以为您的库迁移到 C/C++。跨度> 是的,我有这个框架的 .h 和 .cpp 文件。但是他们依赖于 iOS 库——这是一个主要问题。也许excist一些带有ios库的工具 如前所述,您不能。你必须只使用在 android 上运行的 c/c++ 头文件来编写整个库。 Apportable 已经倒闭了。【参考方案2】:您将无法获取为 iOS 构建的静态库并直接在 Android 上使用它。
但是,如果您的库包含主要使用 Foundation 或 CoreFoundation 框架的 Objective C 代码,您可以使用 GNUstep Android toolchain 为 Android 编译库。
请注意,如果您的库使用其他 iOS 特定框架(如 UIKit),这将不起作用。
【讨论】:
以上是关于在 Android 上运行 Objective-C 静态库的主要内容,如果未能解决你的问题,请参考以下文章
com.android.camera.action.CROP 在objective-c 中?
使用支持 Objective-C 的 gcc 错误编译 Android NDK