AOSP 构建失败

问题描述 投票:0回答:1

AOSP 和 Android 新手。

失败:分析 Android.bp 文件并在 out/soong/build.aosp_cf_x86_64_phone.ninja 生成 ninja 文件 输出:out/soong/build.aosp_cf_x86_64_phone.ninja 错误:退出,代码:1 命令: cd "$(dirname "out/host/linux-x86/bin/soong_build")" && BUILDER="$PWD/$(basename "out/host/linux-x86/bin/soong_build")" && cd / && env -i "$BUILDER" --top "$TOP" --soong_out "out/soong" --out "out" --soong_variables out/soong/soong.aosp_cf_x86_64_phone.variables -o out/soong/build.aosp_cf_x86_64_phone .ninja -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.aosp_cf_x86_64_phone.build Android.bp 输出: 警告:模块“androidx.wear_wear”依赖于不存在的Optional_uses_libs“wear-sdk” 警告:模块“androidx.wear.compose_compose-foundation”依赖于不存在的Optional_uses_libs“wear-sdk” 被杀了

按照 Google 提供的步骤操作后,我在使用 m 命令时收到以下错误。有人可以阐明如何获取不存在的库吗?非常感谢!

android android-source ninja android-soong
1个回答
0
投票

看起来您在构建与缺失库相关的 AOSP 时遇到了一个常见问题。您看到的具体错误消息:

Warning: Module 'androidx.wear_wear' depends on non-existing optional_uses_libs 'wear-sdk'
Warning: Module 'androidx.wear.compose_compose-foundation' depends on non-existing optional_uses_libs 'wear-sdk'

通常会发生,因为

wear-sdk
库在您当前的 AOSP 设置中不可用。这可能有点棘手,特别是如果您是 AOSP 新手。但别担心!让我们来看看解决方案。

为什么会发生这种情况

在 AOSP 中,构建系统使用

Android.bp
文件来定义模块(如应用程序和库)的构建方式。您收到的错误表明某些模块(与 Wear OS 相关)正在尝试使用名为
wear-sdk
的可选库,该库在您的构建环境中不存在。

分步解决方案

1. 将缺少的库添加到您的构建中

您可以将这些库添加到您的构建环境中,方法是将它们包含在本地清单中。方法如下:

  • 导航到您的 AOSP 根目录。
  • 创建或编辑文件
    .repo/local_manifests/wear.xml
    (如果文件夹和文件不存在,则创建它们)。
  • 将以下内容添加到该文件中:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <project name="platform/frameworks/support" path="frameworks/support" remote="aosp" revision="androidx-main" />
</manifest>

这告诉 AOSP 构建系统从 AndroidX 支持存储库同步缺少的 Wear OS 库。

2. 同步更新的清单

运行以下命令来同步新库:

repo sync -c -j8

这将下载本地清单中定义的其他组件。

3. 清洁和重建

有时,AOSP 对旧的构建缓存可能有点顽固。所以,清理并重新开始是个好主意:

make clean

然后,再次建立你的目标:

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
m

4. 禁用不需要的模块(可选)

如果您不是为 Wear OS 设备构建而只是想绕过这些错误,则可以尝试排除有问题的模块。编辑您的

Android.bp
文件或将以下行添加到您的
soong
配置中:

SOONG_CONFIG_package_module_disable_wear=true

这将阻止

wear-sdk
包含在您的构建中。

额外提示

  • 确保您使用的是兼容的 AOSP 分支/标签。例如,如果您正在针对 Android 13 进行构建,您的

    repo init
    命令应引用正确的版本:

    repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r1
    
  • 有时,只需运行

    make clean
    并重建就可以解决由部分构建的组件引起的奇怪问题。

希望这可以帮助您克服错误!如果您遇到任何其他问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.