AOSP Android.bp中的预构建libtensorflowlite.so库,构建失败,权限被拒绝

问题描述

我有一个从tensorflow和bazel生成的libtensorflowlite.so库,我一直在与CMake一起使用它来交叉编译可执行文件,并且能够在android中顺利运行它们,但是当我想使用该库时(libtensorflowlite .so)作为预先构建的AOSP构建系统中出现此错误
ERROR: out/target/product/*/obj_arm/SHARED_LIBRARIES/libtensorflowlite_prebuilted_intermediates/PACKED/libtensorflowlite_prebuilted.so: Permission denied

我在Android.bp中的模块如下:

cc_prebuilt_library_shared {
    name: "libtensorflowlite_prebuilted",host_supported: true,vendor_available: true,target: {
        android_arm: {
            srcs: ["prebuilt_libs/armeabi-v7a/libtensorflowlite.so"],},android_arm64: {
            srcs: ["prebuilt_libs/arm64-v8a/libtensorflowlite.so"],strip: {
        none:true,}

过去,我可以使用完全相同的Android.bp形式针对其他预构建的库进行编译,而从未遇到此错误

解决方法

能够使用Android.mk成功构建相同的预构建共享库

include $(CLEAR_VARS)
LOCAL_MODULE := libtensorflowlite_prebuilted
LOCAL_VENDOR_MODULE := true
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
LOCAL_SRC_FILES_$(TARGET_ARCH) := prebuilt_libs/$(TARGET_ARCH)/libtensorflowlite.so
LOCAL_SRC_FILES_$(TARGET_2ND_ARCH) := prebuilt_libs/$(TARGET_2ND_ARCH)/libtensorflowlite.so
LOCAL_EXPORT_C_INCLUDE_DIRS := \
    $(LOCAL_PATH)/include
include $(BUILD_PREBUILT)

然而,Android.bp方法失败了,但不知道为什么!