You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pixel设备构建AAOS时遭遇cts_defaults未定义错误求助

在Pixel设备构建AAOS时遇到cts_defaults未定义的错误

问题概述

按照谷歌官方指南在Pixel设备(tangorpro)上构建Android 14 AAOS时,构建初期出现多个测试模块依赖未定义cts_defaults模块的错误,导致Soong构建流程失败。

错误详情

[100% 1/1] analyzing Android.bp files and generating ninja file at out/soong/build.aosp_tangorpro_car.ninja
FAILED: out/soong/build.aosp_tangorpro_car.ninja
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_tangorpro_car.variables -o out/soong/build.aosp_tangorpro_car.ninja --globListDir aosp_tangorpro_car --globFile out/soong/globs-aosp_tangorpro_car.ninja -l out/.module_paths/Android.bp.list --available_env out/soong/soong.environment.available --used_env out/soong/soong.environment.used.aosp_tangorpro_car.build Android.bp
error: packages/modules/Permission/tests/cts/permission/AppThatRequestContactsPermission15/Android.bp:21:1: "CtsAppThatRequestsContactsPermission15" depends on undefined module "cts_defaults".
Or did you mean ["mts_defaults" "sts_defaults"]?
error: packages/modules/Permission/tests/cts/permission/AppThatAlsoDefinesPermissionGroupADifferentCert/Android.bp:21:1: "CtsAppThatAlsoDefinesPermissionGroupADifferentCert" depends on undefined module "cts_defaults".
Or did you mean ["mts_defaults" "sts_defaults"]?
error: packages/modules/HealthFitness/tests/integrationtests/TestApp/Android.bp:49:1: "HCPermsTestAppNoUsageIntent" depends on undefined module "cts_defaults".
Or did you mean ["mts_defaults" "sts_defaults"]?
error: packages/modules/Permission/tests/cts/permission/AppWithSharedUidThatRequestLocationPermission29/Android.bp:21:1: "CtsAppWithSharedUidThatRequestsLocationPermission29" depends on undefined module "cts_defaults".
Or did you mean ["mts_defaults" "sts_defaults"]?

执行的操作步骤

  • 代码同步与构建:
    mkdir aaos_on_pixel
    cd aaos_on_pixel
    REPO_ALLOW_SHALLOW=0 repo init -c -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r30 --use-superproject --partial-clone --partial-clone-exclude=platform/frameworks/base --clone-filter=blob:limit=10M
    repo sync -j32
    
  • 下载Pixel设备的vendor镜像:
    curl --output - https://dl.google.com/dl/android/aosp/google_devices-tangorpro-ap1a.240405.002-8d141153.tgz  | tar -xzvf -
    tail -n +315 extract-google_devices-tangorpro.sh | tar -zxvf -
    
  • 应用补丁:
    cd packages/services/Car
    git fetch https://android.googlesource.com/platform/packages/services/Car refs/changes/83/3037383/2 && git cherry-pick FETCH_HEAD #fix the audio crash
    cd -
    
  • 执行构建:
    . build/envsetup.sh
    lunch aosp_tangorpro_car-ap1a-userdebug
    m
    

问题分析

cts_defaults是CTS(兼容性测试套件)模块的默认配置集合,通常仅在CTS专属构建目标或完整AOSP分支中定义。AAOS的构建目标(aosp_tangorpro_car)默认不会集成CTS相关模块的依赖定义,导致测试模块找不到该配置。此外,同步代码时使用的--partial-clone-exclude=platform/frameworks/base参数,可能遗漏了包含cts_defaults定义的核心代码文件。

解决办法

方案1:跳过CTS测试模块构建

直接在构建命令中排除CTS相关模块,避免因测试模块依赖问题中断主流程:

m -k --exclude-packages cts

如果需要更精确地排除报错模块:

m -k --exclude-packages CtsAppThatRequestsContactsPermission15 CtsAppThatAlsoDefinesPermissionGroupADifferentCert HCPermsTestAppNoUsageIntent CtsAppWithSharedUidThatRequestsLocationPermission29

-k参数表示遇到错误时继续构建,确保主系统模块能正常编译完成。

方案2:替换依赖的默认配置

根据错误提示的建议,将报错模块中的cts_defaults替换为mts_defaults或sts_defaults。例如,打开packages/modules/Permission/tests/cts/permission/AppThatRequestContactsPermission15/Android.bp,修改:

defaults: ["cts_defaults"],

为:

defaults: ["mts_defaults"],

如果不需要CTS签名等特殊配置,也可以手动添加基础配置替代:

android_app {
    name: "CtsAppThatRequestsContactsPermission15",
    // 替换cts_defaults为基础配置
    platform_apis: true,
    certificate: "platform",
    // 保留原有其他配置...
}

方案3:重新同步完整代码

移除同步时的--partial-clone-exclude=platform/frameworks/base参数,拉取包含cts_defaults定义的完整代码:

repo init -c -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r30 --use-superproject --partial-clone --clone-filter=blob:limit=10M
repo sync -j32

重新执行构建流程即可。

内容的提问来源于stack exchange,提问作者user3560022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:30:30