AOSP构建TARGET_PRODUCT失败

时间:2019-07-16 14:16:32

标签: arm wolfram-mathematica android-source armv8

我正在尝试使用AOSP构建外部工具。我的操作系统是Linux,发行版ArchLinux(i3wm),但是要编译AOSP,我在Docker(https://android.googlesource.com/platform/build/+/master/tools/docker)中使用Ubuntu

第一步:

# init repo
repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r36 --depth=1
repo sync
. build/envsetup.sh # set up environment
lunch aosp_arm-eng # select target to build

第二步:选择工具并构建

cd external/selinux
mma -j48

输出:

ninja: error: unknown target 'MODULES-IN-'
15:41:55 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
make: Leaving directory `/home/user/aosp'

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

另一个工具

cd external/wpa_supplicant_8
mma -j48

输出:

ninja: error: unknown target 'MODULES-IN-external-wpa_supplicant_8'
15:41:55 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
make: Leaving directory `/home/user/aosp'

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

任何aosp通用目标都会发生这种情况:

Lunch menu... pick a combo:
     1. aosp_arm-eng                    # fails
     2. aosp_arm64-eng                  # fails
     3. aosp_mips-eng                   # fails
     4. aosp_mips64-eng                 # fails
     5. aosp_x86-eng                    # fails
     6. aosp_x86_64-eng                 # fails
     7. full_fugu-userdebug             # works
     8. aosp_fugu-userdebug             # works
     9. car_emu_arm64-userdebug         # fails
     10. car_emu_arm-userdebug          # fails
     11. car_emu_x86_64-userdebug       # fails
     12. car_emu_x86-userdebug          # fails
     13. mini_emulator_arm64-userdebug  # fails
     14. m_e_arm-userdebug              # fails
     15. m_e_mips64-eng                 # fails
     16. m_e_mips-userdebug             # fails
     17. mini_emulator_x86_64-userdebug # fails
     18. mini_emulator_x86-userdebug    # fails
     19. aosp_dragon-userdebug          # works
     20. aosp_dragon-eng                # works
     21. aosp_marlin-userdebug          # works
     22. aosp_marlin_svelte-userdebug   # works
     23. aosp_sailfish-userdebug        # works
     24. aosp_angler-userdebug          # works
     25. aosp_bullhead-userdebug        # works
     26. aosp_bullhead_svelte-userdebug # works
     27. hikey-userdebug                # works

我想在所有arch中编译一些二进制工具:arm,arm64,x86和x86_64。

为什么aosp_arm-eng不起作用?或者如何从非通用aosp目标更改CPU体系结构?

使用tapas无效。

4 个答案:

答案 0 :(得分:2)

使用 make clean 命令清除 /out 目录中的所有二进制文件,然后尝试进行完整构建

答案 1 :(得分:1)

在尝试使用mm...快捷方式之前,您可能需要进行完整的AOSP构建-似乎尚未生成某些构建脚本文件。

答案 2 :(得分:0)

实际上,不需要进行完整构建。只需打开要构建的模块的Android.mk或Android.bp,然后查找变量MODULE_NAME。

然后从项目的根目录开始

mm $MODULE_NAME

它应该首先构建您需要的所有依赖项。

答案 3 :(得分:0)

我建议使用mmm命令进行构建。还要确保您指向的目录包含一个Android.bp或Android.mk

mmm /external/selinux 

我还建议通过删除out目录或直接运行来清理输出:

make clean

如果仍然有问题,请删除repo init上的--depth = 1参数,然后再次进行同步。该参数限制了从远程分支获取提交。