我们正在尝试在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文件是遗留的,很可能无法从源代码重新编译。如果这是问题,还有其他解决方案吗?
感谢。
答案 0 :(得分:0)
您需要获取第三方库的源代码并将其交叉编译为原生Android的NDK,以使其二进制兼容。
简单地将x86静态库放入Android的NDK构建 只是不起作用。