AOSP构建TARGET_PRODUCT失败

6

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

第一步:

# 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

我希望在所有架构(arm、arm64、x86和x86_64)上编译一些二进制工具。

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

使用tapas不起作用。

5个回答

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

3

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


0

实际上没有必要进行完整的构建。只需打开您想要构建的模块的 Android.mk 或 Android.bp 文件,并查找变量 MODULE_NAME。

然后从项目的根目录执行 make 命令即可。

mm $MODULE_NAME

首先,它应该构建所有你需要的依赖。


0

使用以下命令从根目录编译模块

  1. 进入根目录
  2. 执行 make clean 命令
  3. 运行 source build/envsetup.sh 命令
  4. 输入 lunch "选择的选项"
  5. 执行 make "模块名称" -j8 命令

0

我建议使用mmm命令进行构建。同时确保您指向的目录包含Android.bp或Android.mk文件。

mmm /external/selinux 

我建议通过删除输出目录或运行以下命令来清理输出:

make clean

如果你仍然遇到这个问题,就在repo init命令中移除--depth=1参数,然后再次同步。该参数限制了从远程分支获取提交的数量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接