【问题标题】:Android NDK build issue with gnustl_sharedgnustl_shared 的 Android NDK 构建问题
【发布时间】:2013-08-16 09:03:54
【问题描述】:

我的 Android NDK 项目有问题。

我的项目由 2 个项目组成:一个库和一个应用程序。

我想使用 gnustl_shared 并在生成的 .apk 文件中包含 gnustl_shared.so。

所以我的两个 Application.mk 文件中都有 APP_STL := gnustl_shared。

问题是,如果我这样做,它会给我以下错误:

Error generating final archive: Found duplicate file for APK: lib/armeabi/libgnustl_shared.so
Origin 1: /Volumes/STUFF/repos/trunk/android/MainActivity/libs/armeabi/libgnustl_shared.so
Origin 2: /Volumes/STUFF/repos/trunk/android/MyLib/libs/armeabi/libgnustl_shared.so

如果我将 APP_STL := gnustl_shared 仅用于它构建的一个项目,但链接到静态库(实际上应该如此)。

有谁知道如何在库和应用程序中链接 gnustl_shared 并避免此错误?非常感谢任何帮助甚至线索。

【问题讨论】:

  • 我们能否从应用程序中的 .mk 文件和链接到 .so 的库中看到相关部分?
  • 基本上它们不过是:APP_PLATFORM := android-9 和 APP_STL := gnustl_shared。依赖是通过eclipse完成的。使用 eclipse 建立依赖关系在开发阶段更容易让它每次都建立依赖关系。

标签: android c++ c build android-ndk


【解决方案1】:

问题解决了。

  1. 选择库项目
  2. 导航至:项目->属性->Java 构建路径
  3. 选择“订购和导出”标签
  4. 取消选中“Android 私有库”和“Android 依赖项”

无论如何,它们都会与应用程序配置一起添加到最终的 .apk 中。

【讨论】:

  • 这不适用于 ADT 23.0.4.1468518 和 Eclipse Luna Service Release 1a (4.4.1)。
猜你喜欢
  • 1970-01-01
  • 2019-02-27
  • 2012-08-05
  • 2012-03-30
  • 2014-05-21
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多