ANDROIDMK 翻译错误:Android.bp 中不支持包含

问题描述

我正在尝试将包含 fwk/base/pkgs/SettingsLib/common.mk 添加到设置应用程序中,但我不确定如何在 Android.bp 文件中使用它。

我使用 AOSP 构建系统附带的 androidmk 转换工具将 Android.mk 转换为 Android.bp

我做了什么:

1. On AOSPSource code,check build/soong/androidmk and make full build.
2. After compiling the source code,the androidmk generation tool located :
# out/soong/host/linux-x86/bin/androidmk
3. Using the androidmk command try converting my Android.mk to Android.bp
# androidmk Android.mk > Android.bp

Android.bp 内部错误

 20 // **ANDROIDMK TRANSLATION ERROR: unsupported include**
 21 // include frameworks/base/packages/SettingsLib/search/common.mk$

有什么建议吗?提前致谢。

解决方法

找到了将 Android.mk 转换为 Android.bp 并在应用程序上导入的方法。

Core AOSP androidmk 工具没有帮助,我们需要在 SettingsLibs 上手动创建 SettingsLibDefaults(在任何库上创建默认值)。 Referred AOSP SettingsLib Android.bp file

// NOTE: Keep this module in sync with ./common.mk
java_defaults {
    name: "SettingsLibDefaults",static_libs: [
        "androidx.annotation_annotation","androidx.lifecycle_lifecycle-common","androidx.legacy_legacy-support-v4","androidx.lifecycle_lifecycle-runtime","androidx.recyclerview_recyclerview","androidx.preference_preference","androidx.appcompat_appcompat","androidx.legacy_legacy-preference-v14","SettingsLib",],}

在设置应用 Android.bp 文件中使用 SettingsLibDefaults

android_library {
    name: "Settings-core",platform_apis: true,defaults: [
        "SettingsLibDefaults","SettingsLib-search-defaults",

同样,我们需要在任何 libs Android.bp 文件上创建默认值并在应用程序上导入。