Android AOSP:Can';不要将预构建的静态库放入它们的中间文件夹,以便链接到其他模块

Android AOSP:Can';不要将预构建的静态库放入它们的中间文件夹,以便链接到其他模块,android,android-source,Android,Android Source,我正在尝试使用预构建的静态库并将它们链接到另一个库 我正在AOSP构建中构建的静态库。预制件是 我有特定于体系结构的版本的依赖项 核心/应用程序模块取决于opencv预构建。这是我的文件夹结构 Core ├── Android.mk ├── Core │   ├── Android.mk │   ├── App │   │   ├── Android.mk | | | ... │   ├── App.h │   ├── Base │   │   ├── Algorithm.cpp │  

我正在尝试使用预构建的静态库并将它们链接到另一个库 我正在AOSP构建中构建的静态库。预制件是 我有特定于体系结构的版本的依赖项

核心/应用程序模块取决于opencv预构建。这是我的文件夹结构

Core
├── Android.mk
├── Core
│   ├── Android.mk
│   ├── App
│   │   ├── Android.mk
|   |   | ...
│   ├── App.h
│   ├── Base
│   │   ├── Algorithm.cpp
│   │   ├── Algorithm.h
|   |   |   Android.mk
|   |   | ...
│   ├── Base.h
│   ├── Core.h
│   ├── GL
│   │   ├── Android.mk
│   │   └── GLWarpVertexRenderer.h
|   |   | ...
│   ├── GL.h
│   ├── Log
│   │   ├── Android.mk
|   |   | ...
│   ├── Log.h
└── Vendor
    ├── Android.mk
    ├── core-libs
    │   ├── opencv
    │   │   ├── Android
    │   │   │   ├── cmake_android_all.sh
    │   │   │   └── sdk
    │   │   │       └── native
    │   │   │           ├── 3rdparty
    │   │   │           │   └── libs
    |   |   |           |  ... 
    │   │   │           ├── jni
    │   │   │           │   ├── android.toolchain.cmake
    │   │   │           │   ├── include
    │   │   │           │   │   ├── opencv
    │   │   │           │   │   │   ├── cvaux.h
    |   |   |           |   |   |   ...
    │   │   │           │   │   └── opencv2
    │   │   │           │   │       ├── core
    │   │   │           └── libs
    │   │   │               ├── arm64-v8a
    │   │   │               │   ├── libopencv_core.a
    │   │   │               │   ├── libopencv_features2d.a
    │   │   │               │   ├── libopencv_imgproc.a
    │   │   │               │   └── libopencv_video.a
    │   │   │               ├── armeabi-v7a
    │   │   │               │   ├── libopencv_core.a
    │   │   │               │   ├── libopencv_features2d.a
    │   │   │               │   ├── libopencv_imgproc.a
    │   │   │               │   └── libopencv_video.a
    │   │   │               ├── x86
    │   │   │               │   ├── libopencv_core.a
    │   │   │               │   ├── libopencv_features2d.a
    │   │   │               │   ├── libopencv_imgproc.a
    │   │   │               │   └── libopencv_video.a
    │   │   │               └── x86_64
    │   │   │                   ├── libopencv_core.a
    │   │   │                   ├── libopencv_features2d.a
    │   │   │                   ├── libopencv_imgproc.a
    │   │   │                   └── libopencv_video.a
    ├── Eigen
    |   ├── ...
    |
    └── fmt
        ├── Android.mk
              ...
  245 directories, 1743 files
供应商文件夹的Android.mk文件。 它包含一个构建的静态库和四个32位和64位风格的预构建

#This build fmt and also exports the inlcude path to Eigen
#Link this with all Core components as a dependency

ROOT_DIR := $(call my-dir)

LOCAL_PATH := $(ROOT_DIR)/core-libs/opencv/Android/sdk/native/libs

include $(CLEAR_VARS)
LOCAL_MODULE := opencv_core_prebuilt
LOCAL_MULTILIB := both
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILES_arm := armeabi-v7a/libopencv_core.a
LOCAL_SRC_FILES_arm64 := arm64-v8a/libopencv_core.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../jni/include
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := opencv_features2d_prebuilt
LOCAL_MULTILIB := both 
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILE_arm := armeabi-v7a/libopencv_features2d.a
LOCAL_SRC_FILE_arm64 := arm64-v8a/libopencv_features2d.a
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../jni/include 
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := opencv_imgproc_prebuilt
LOCAL_MULTILIB := both 
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILE_arm := armeabi-v7a/libopencv_imgproc.a
LOCAL_SRC_FILE_arm64 := arm64-v8a/libopencv_imgproc.a
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../jni/include 
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := opencv_video_prebuilt
LOCAL_MULTILIB := both 
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILE_arm := armeabi-v7a/libopencv_video.a
LOCAL_SRC_FILE_arm64 := arm64-v8a/libopencv_video.a
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../jni/include 
include $(BUILD_PREBUILT)


LOCAL_PATH := $(ROOT_DIR)
include $(CLEAR_VARS)

LOCAL_CPPFLAGS += -std=c++11 -fexceptions

LOCAL_MODULE := com.rylo.coreDeps

LOCAL_C_INCLUDES := $(LOCAL_PATH)/fmt/include
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/fmt/include \
                   $(LOCAL_PATH)/Eigen  

LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := fmt/src/format.cc


include $(BUILD_STATIC_LIBRARY)
由AOSP构建的库(Core/App)的Android.mk文件,该文件依赖于预构建的静态库 我没有向设备配置文件的产品包添加任何内容。我希望生成的核心/应用程序库能够找到它的依赖项 在构建过程中似乎是这样的,但是看起来预构建的目标没有被复制到中间文件夹中。基本上,预构建的copy命令似乎是将$LOCAL_路径复制为文件夹,而不是SRC文件

这是构建输出日志

[ 66% 2/3] glob vendor/*/*/*/*/*/Android.bp
[  1% 3/155] target Prebuilt: opencv_video_pr...ebuilt_intermediates/opencv_video_prebuilt.a)
FAILED: out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
[  2% 4/155] target Prebuilt: opencv_video_pr...ebuilt_intermediates/opencv_video_prebuilt.a)
FAILED: out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
[  3% 5/155] target Prebuilt: opencv_features...t_intermediates/opencv_features2d_prebuilt.a)
FAILED: out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
[  3% 6/155] target Prebuilt: opencv_imgproc_...uilt_intermediates/opencv_imgproc_prebuilt.a)
FAILED: out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
[  4% 7/155] target Prebuilt: opencv_imgproc_...uilt_intermediates/opencv_imgproc_prebuilt.a)
FAILED: out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_imgproc_prebuilt_intermediates/opencv_imgproc_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
[  5% 8/155] target Prebuilt: opencv_features...t_intermediates/opencv_features2d_prebuilt.a)
FAILED: out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a
/bin/bash -c "(rm -f out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/ out/target/product/qcs605/obj_arm/STATIC_LIBRARIES/opencv_features2d_prebuilt_intermediates/opencv_features2d_prebuilt.a )"
cp: omitting directory ‘vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/’
ninja: build stopped: subcommand failed.
请注意以下几点

/bin/bash -c "(rm -f out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/
为什么要复制
vendor/rylo/Core/vendor/Core libs/opencv/Android/sdk/native/libs/
,它是本地路径变量,而不是 本地\u SRC\u文件可变内容?

任何帮助都将不胜感激

谢谢
卡尔蒂克

找到答案有什么运气吗?没有。。。然后我就不再在平台上工作了。
/bin/bash -c "(rm -f out/target/product/qcs605/obj/STATIC_LIBRARIES/opencv_video_prebuilt_intermediates/opencv_video_prebuilt.a ) && (cp vendor/rylo/Core/Vendor/core-libs/opencv/Android/sdk/native/libs/