首页 > 解决方案 > 如何从 Android AOSP 代码库构建单个模块

问题描述

我正在使用 aws 的 AOSP 构建环境,它本质上是 EC2 上的 AOSP 结帐(我的猜测)。

例如,如果我尝试构建联系人应用程序,


    ubuntu@ip-172-31-37-80:~/aosp/oreo/packages/apps/Contacts$ mm
    make: Entering directory '/home/ubuntu/aosp/oreo'
    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=8.0.0
    TARGET_PRODUCT=aosp_arm
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a
    TARGET_CPU_VARIANT=generic
    HOST_ARCH=x86_64
    HOST_2ND_ARCH=x86
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.15.0-1056-aws-x86_64-with-Ubuntu-18.04-bionic
    HOST_CROSS_OS=windows
    HOST_CROSS_ARCH=x86
    HOST_CROSS_2ND_ARCH=x86_64
    HOST_BUILD_TYPE=release
    BUILD_ID=OPD1.170816.025
    OUT_DIR=out
    ============================================
    [38/38] bootstrap out/soong/.minibootstrap/build.ninja.in
    [1/2] out/soong/.bootstrap/bin/minibp out/soong/.minibootstrap/build.ninja.in
    [4/4] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
    [791/792] glob test/vts/utils/native/trace_processor/Android.bp
    [47/47] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
    out/build-aosp_arm-packages_apps_Contacts_Android.mk.ninja is missing, regenerating...
    test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
    test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
    test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
    [ 99% 1301/1302] glob vendor/*/*/Android.bp
    ninja: error: 'out/host/linux-x86/bin/aapt', needed by 'out/target/product/generic/obj/APPS/Contacts_intermediates/package.apk', missing and no known rule to make it
    01:29:34 ninja failed with: exit status 1
    build/core/main.mk:21: recipe for target 'run_soong_ui' failed
    make: *** [run_soong_ui] Error 1
    make: Leaving directory '/home/ubuntu/aosp/oreo'

    #### make failed to build some targets (25 seconds) ####


我的想法是只从应用程序级文件夹构建那些 java 源代码以提高速度。这可能吗?

谢谢!

问候,

二维码

=======更新=======

如果我运行>mma,然后>mm。构建正在通过,但它实际上没有编译任何东西(因为已经构建了 java 文件?)。

如果我运行 >mma,然后 >mm clean,然后 >mm,则 mm 无法构建。

标签: androidandroid-source

解决方案


您可以构建一个包含所有依赖项的单个模块m <module>

例子:

m Contacts

关于您收到的错误消息:我有时会收到这些类型的错误消息,因为存储库没有正确签出,因此文件丢失。的来源aapt位于frameworks/base/存储库中。您应该检查 git status 是否有效以及该frameworks/base/tools/aapt目录是否存在。


推荐阅读