【问题标题】:Can Eclipse use .so files from NDK compilation on another platform?Eclipse 可以在另一个平台上使用来自 NDK 编译的 .so 文件吗?
【发布时间】:2013-09-18 05:39:16
【问题描述】:

在 Mac OS X 上,我运行 ndk,它会生成一些 .so 库,理论上这些库应该可以在 Windows 上重用。但是,当我在 windows 上 eclipse 重新编译我的 Android 项目时,我得到了不同的 apk 大小,并且它的运行方式与在 Mac 上完成整个 eclipse 构建时不同。只有在 mac 上构建才有效。不从 mac ndk 构建中获取 .so 文件,并在 windows 构建中重用它们。关于macs和windows如何构建我不理解的apk文件,要么是这样,要么是不同的东西。 windows 生成的 apk 的问题是它有内存过度消耗,这在仅在 osx 上生成的 apk 上是看不到的。

所以要澄清这一点(在 MAC OS X 上)有效:

1) 在 osX 上运行 ndk 生成 .so 文件 2) OS X eclipse 编译安卓应用并部署在设备上。 3) OS X eclipse 在设备上运行 apk。

生成的 apk 当然可以在所有设备上运行。

这(在 WINDOWS 上)不起作用: 1) 在 Windows 上使用 .so 在 osx ndk build 上生成。 2) windows eclipse 使用 ndk 在 OS X 上生成的 .so 文件编译 android 应用程序。 3) eclipse 在设备上运行 apk。 apk 具有不同的字节数,虽然它会加载,但它现在会产生内存错误,这与仅在 OS X 上开发的 apk 不同。

谢谢!

【问题讨论】:

  • 等等,你是如何在 iOS 上生成 APK 的?你是说 OS X 吗?
  • 是的,OS X 我会解决的。
  • 你们使用同一个版本的工具链吗?如果您有不同版本的 NDK SDK,那么工具链可能会有所不同。

标签: android eclipse android-ndk eclipse-adt


【解决方案1】:

您可以在 OSx (MAC) 上编译跨平台代码(又名 NDK)并获取 *.so、*.a 文件。

在 Windows 上使用 Eclipse 构建 Android 项目(a.e 创建 APK)之后。

它应该工作。

(我是为 Linphone Android 做的,核心是用纯 C 编写的)

【讨论】:

  • 好的。有什么想法会导致这样的差异吗?我正在从 git 检查完全相同的代码,但根据是否在 windows 和 osx 上生成 apk 得到不同的结果。
  • 肯定有区别(不大)。在 MAC(与任何其他 linux 操作系统一样)上,您的区别在于大小(~1-3%)。尝试将文件 1K 从 windows 复制到 Linux 并查看增量。
猜你喜欢
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 2013-05-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多