0

我有一个名为“libaudio_ns.so”的预建共享库,我希望 libaudiofinger.so 链接到这个库。我这样做如下:

  1. 使用 Android.mk 将预建库添加到 android/external/ns/lib/libaudio_ns.so,如下所示:

`包括 $(CLEAR_VARS)

LOCAL_MODULE := libaudio_ns

LOCAL_MODULE_SUFFIX := .so

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

LOCAL_MULTILIB := 两者

LOCAL_SRC_FILES_arm := lib/libaudio_ns.so

LOCAL_SRC_FILES_arm64 := lib64/libaudio_ns.so

LOCAL_MODULE_TARGET_ARCH := arm arm64

LOCAL_SHARED_LIBRARIES := liblog

LOCAL_MODULE_TAGS := 可选

包括 $(PREBUILT_SHARED_LIBRARY)`

  1. 在文件 framework/av/services/audioflinger/Android.bq 中,我添加了“libaudio_ns”

共享库:[

“libaudio基金会”,

“libaudiohal”,

+"libaudio_ns",

"libaudioprocessing",

“libaudiospdif”,

“libaudioutils”,

“libcutils”,

“libutils”,

"库", ],

但在编译过程中出现如下错误:

[ 99% 719/720] glob vr.prof

[100% 720/720] 输出/soong/.bootstrap/bin/soong_build 输出/soong/build.ninja

失败:out/soong/build.ninja

out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/。 bootstrap/build-globs.ninja -o

out/soong/build.ninja Android.bp

错误:frameworks/av/services/audioflinger/Android.bp:3:1:“libaudioflinger”依赖于未定义的模块“libaudio_ns”

忍者:构建停止:子命令失败。

15:24:33 很快引导失败:退出状态 1

未能建立一些目标 (10:29 (mm:ss))

注意:libaudiflinger.so 位于 system/lib64

你能帮忙解决这个问题或给我任何关于这个问题的建议吗?太感谢了!

4

1 回答 1

0

我认为你需要添加对模块的libaudio_ns依赖。LOCAL_SHARED_LIBRARIESaudioflinger

由于您要添加预构建的 .so 文件,您可能可以使用PRODUCT_COPY_FILES方法,请参阅将自定义 SO 文件导入 AOSP

编辑:对不起,那行不通。似乎你需要将.mk 文件转换为.bp,然后Soong 才能看到它。

https://groups.google.com/g/android-building/c/IjNEMlA5lj4

仅供参考,有一个将 .mk 转换为 .bp 的工具,称为androidmk https://stackoverflow.com/a/48593871/1028256

于 2021-12-27T21:25:06.850 回答