【问题标题】:Using a third party .a library in Android ndk app在 Android ndk 应用程序中使用第三方 .a 库
【发布时间】:2012-08-11 11:38:06
【问题描述】:

我们正在尝试在我们的 Android 应用中使用第三方 .a 静态库。 .a 库是为 x86 构建的,我们将它与 PC linux 机器一起使用没有问题。

然后我们尝试通过这个 Android.mk 在 Android 上使用它:

LOCAL_PATH:= $(call my-dir)

# first lib, which will be built statically
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-first
LOCAL_SRC_FILES := rwl.a
LOCAL_MODULE_SUFFIX := .a

include $(PREBUILT_STATIC_LIBRARY)

# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-second
LOCAL_SRC_FILES := second.c

LOCAL_STATIC_LIBRARIES := libtwolib-first

include $(BUILD_SHARED_LIBRARY)

我们得到这个错误:

could not read symbols: File in wrong format

是不是因为 .a 文件是用 x86 编译的,而我们正在为 arm 构建?

.a 文件是遗留文件,很可能无法从源代码重新编译。如果是这个问题,还有其他解决方案吗?

谢谢。

【问题讨论】:

    标签: android android-ndk


    【解决方案1】:

    您需要获取第三方库的源代码并将其交叉编译为原生 Android 的 NDK,以使其二进制兼容。

    简单地将 x86 静态库放入 Android 的 NDK 构建不起作用。

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 2019-04-23
      相关资源
      最近更新 更多