2012-08-11 73 views
0

我们正在尝试在我们的Android应用程序中使用第三方.a静态库。 .a lib是为x86编译的,我们在没有任何问题的情况下将它与PC Linux机器一起使用。在Android中使用第三方.a库ndk应用程序

然后,我们尝试使用这种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 

是不是因为某文件与x86和我们编译正在建设的手臂?

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

谢谢。

回答

0

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

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

相关问题