在Android AOSP中使用预构建的共享库

在Android AOSP中使用预构建的共享库,android,android-source,Android,Android Source,我想在AOSP中使用预构建的共享库。该库在Android.mk中定义如下: include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_MODULE_SUFFIX := .so LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_TAG := optional LOCAL_MODULE_PATH := system/lib LOCAL_SRC_FILE := system/lib/foo.so include

我想在AOSP中使用预构建的共享库。该库在Android.mk中定义如下:

include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAG := optional
LOCAL_MODULE_PATH := system/lib
LOCAL_SRC_FILE := system/lib/foo.so
include $(BUILD_PREBUILT)
在构建过程中,一个文件夹
out/target/product/mako/obj/SHARED\u LIBRARIES/foo\u intermediates/export\u include
创建了

但是,生成失败,错误消息是找不到
out/target/product/mako/obj_arm/SHARED_LIBRARIES/foo_intermediates/export_include

注意“obj”和“obj_臂”之间的区别。问题的原因是什么?

这是两个目标版本(arm和arm64),因此有两个obj文件夹,一个用于32位arm,另一个用于64位arm

我需要如下定义库:

include $(CLEAR_VARS)
LOCAL_MODULE := libfoo
LOCAL_MODULE_SUFFIX :=.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
ifdef TARGET_2ND_ARCH
LOCAL_MULTILIB := both
LOCAL_MODULE_PATH_64 := system/lib64
LOCAL_SRC_FILES_64 := system/lib64/libfoo.so
LOCAL_MODULE_PATH_32 := system/lib
LOCAL_SRC_FILES_32 := system/lib/libfoo.so
else
LOCAL_MODULE_PATH := system/lib
LOCAL_SRC_FILES := system/lib/libfoo.so
endif
include $(BUILD_PREBUILT)