【问题标题】:run objective-c static library on Android在 Android 上运行 Objective-C 静态库
【发布时间】: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 已关闭。请参考这个帖子解决问题:stackoverflow.com/questions/14477768/…

标签: android ios objective-c static-libraries .a


【解决方案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),这将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-03
    • 2011-10-12
    • 1970-01-01
    • 2017-07-12
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    相关资源
    最近更新 更多