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 命令时收到以下错误。有人可以阐明如何获取不存在的库吗?非常感谢!
看起来您在构建与缺失库相关的 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
的可选库,该库在您的构建环境中不存在。
您可以将这些库添加到您的构建环境中,方法是将它们包含在本地清单中。方法如下:
.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 库。
运行以下命令来同步新库:
repo sync -c -j8
这将下载本地清单中定义的其他组件。
有时,AOSP 对旧的构建缓存可能有点顽固。所以,清理并重新开始是个好主意:
make clean
然后,再次建立你的目标:
source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
m
如果您不是为 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
并重建就可以解决由部分构建的组件引起的奇怪问题。
希望这可以帮助您克服错误!如果您遇到任何其他问题,请告诉我。