AOSP忍者构建已停止:子命令失败

问题描述 投票:2回答:1

尝试构建A7.1时出现以下错误。

[ 15% 1827/11495] target Package: framework-res ...bj/APPS/framework-res_intermediates/package.apk)
warning: string 'candidates_style' has no default translation.
warning: string 'candidates_style' is missing 41 required localizations: az_AZ be_BY bn_BD bs_BA en_AU en_CA en_GB en_IN en_NZ en_SG en_US eo_EU et_EE eu_ES gl_ES gu_IN hy_AM is_IS ka_GE kk_KZ km_KH kn_IN ky_KG lo_LA mk_MK ml_IN mn_MN mr_IN ms_MY my_MM ne_NP pa_IN si_LK sq_AL ta_IN te_IN ur_PK uz_UZ zh_CN zh_HK zh_TW
warning: string 'gsm_alphabet_default_charset' has no default translation.
warning: string 'gsm_alphabet_default_charset' is missing 90 required localizations: af_ZA am_ET ar_EG az_AZ be_BY bg_BG bn_BD bs_BA ca_ES cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_IN en_NZ en_SG en_US eo_EU es_ES es_US et_EE eu_ES fa_IR fi_FI fr_BE fr_CA fr_CH fr_FR gl_ES gu_IN hi_IN hr_HR hu_HU hy_AM in_ID is_IS it_CH it_IT iw_IL ja_JP ka_GE kk_KZ km_KH kn_IN ky_KG lo_LA lt_LT lv_LV mk_MK ml_IN mn_MN mr_IN ms_MY my_MM nb_NO ne_NP nl_BE nl_NL pa_IN pl_PL pt_BR pt_PT ro_RO ru_RU si_LK sk_SK sl_SI sq_AL sr_RS sv_SE sw_TZ ta_IN te_IN th_TH tl_PH tr_TR uk_UA ur_PK uz_UZ vi_VN zh_CN zh_HK zh_TW zu_ZA
warning: string 'wfcSpnFormat' has no default translation.
warning: string 'wfcSpnFormat' is missing 41 required localizations: az_AZ be_BY bn_BD bs_BA en_AU en_CA en_GB en_IN en_NZ en_SG en_US eo_EU et_EE eu_ES gl_ES gu_IN hy_AM is_IS ka_GE kk_KZ km_KH kn_IN ky_KG lo_LA mk_MK ml_IN mn_MN mr_IN ms_MY my_MM ne_NP pa_IN si_LK sq_AL ta_IN te_IN ur_PK uz_UZ zh_CN zh_HK zh_TW
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

但是真正奇怪的是。

我也有两个SDK目录,例如/projects/SDK3288A71//projects/SRC3288A71/,尝试分别构建每个SDK,并且一个SDK已成功构建,但其他SDK发生在忍者错误上方。

我尝试过:

  1. 堆大小最大为4g,6g
  2. 大小以交换到16GB
  3. make installclean -j64
  4. 从git服务器重新克隆

但是我遇到了同样的错误。这个错误点不一​​样。

有时达到2%,10%,51%,14%,15%....我不知道为什么和发生了什么。

请告诉我。

android build android-source ninja
1个回答
1
投票
为什么构建失败?

请确保同步到良好的分支,例如android-10.0.0_r25并非所有分支都可以成功构建。

我的笔记本电脑是12G(8G + 4G),我在编译时发现它总是失败。 (Java堆大小足够大,它是4G,并且我设置了环境变量JAVA_TOOL_OPTIONS)

并且我检查出dir下的详细日志。而且我找不到修复错误的任何线索。

请参阅我的错误日志:

失败:out / soong / .intermediates / frameworks / base / test-mock / android.test.mock.docs.system / android_common / android.test.mock.docs.system-stubs.srcjar out / soong / .intermediates /frameworks/base/test-mock/android.test.mock.docs.system/android_common/android.test.mock.docs.system_api.txt out / soong / .intermediates / frameworks / base / test-mock / android.test .mock.docs.system / android_common / android.test.mock.docs.system_removed.txt拾起_JAVA_OPTIONS:-Xmx4096m已杀死

我一次又一次地编译,一次又一次失败,直到我运行top命令并查看忍者和Java进程的内存使用情况,我发现它们耗尽内存的原因使构建过程陷入困境。

特别是在构建

// frameworks / base:system-api-stubs-docs Metalava

时,在构建此项目时,内存使用量高达6〜7GB,忍者杀死了卡住的构建过程,因此构建失败。因此,当发生错误时,我运行make -j1命令而不是默认的make,仅运行一个java和ninja进程,因此不需要那么多的内存,编译成功。

您可以尝试我的方式

发生错误时,您可以运行make -j1命令而不是默认命令make,因此只有一个构建过程正在运行,不会耗尽您的内存,错误时构建系统将继续构建剩余的项目发生。

通过导致失败的项目后,可以键入CTRL + C来中断构建过程。请记住,只需键入一次,然后等待所有java进程退出,以避免引入意外错误。之后,再次输入不带-j1的make命令,以使用4个线程再次构建左侧项目。

最后,您会看到:

构建成功完成(10:48(mm:ss))

© www.soinside.com 2019 - 2024. All rights reserved.