在Android ndk app中使用第三方.a库

时间:2012-08-11 11:38:07

标签: android android-ndk

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

然后我们尝试在Android上使用此Android.mk:

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文件是遗留的,很可能无法从源代码重新编译。如果这是问题,还有其他解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

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

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