首页 > 解决方案 > 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$

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

标签: androidandroid-sourceandroid-soong

解决方案


找到将 Android.mk 转换为 Android.bp 并在 App 上导入的方法。

核心 AOSP androidmk 工具没有帮助,我们需要在 SettingsLibs 上手动创建一个 SettingsLibDefaults(在任何库上创建一个 Defaults)。参考 AOSP SettingsLib Android.bp 文件

// 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",
    ],
}

SettingsLibDefaults 在 Settings App Android.bp文件中的使用

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

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


推荐阅读