bus*_*ong 4 android build android-source ninja
当我尝试构建 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
Run Code Online (Sandbox Code Playgroud)
但真正奇怪的是。
我有两个 SDK 目录,例如/projects/SDK3288A71/和/projects/SRC3288A71/,尝试构建每个 SDK,其中一个 SDK 已成功构建,但其他 SDK 发生上述 ninja 错误。
我努力了:
但我得到了同样的错误。这个错误点不一样。
有时会达到2%、10%、51%、14%、15%……我不知道为什么以及发生了什么。
请建议我。
为什么建设会失败?
确保同步到好的分支,例如 android-10.0.0_r25 并非所有分支都能成功构建。
我的笔记本电脑是12G(8G + 4G),我发现编译时,总是失败。(java堆大小足够大,有4G,我设置了环境变量JAVA_TOOL_OPTIONS)
我检查了 out 目录下的详细日志。而且我找不到任何修复错误的线索。
查看我的错误日志:
失败: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 命令并查看 ninja 和 java 进程的内存使用情况,我找到了它们耗尽内存的原因,使构建过程卡住了。
特别是在构建//frameworks/base:system-api-stubs-docs Metalava时,构建此项目时,内存使用量高达 6~7GB,并且 ninja 杀死了卡住的构建进程,因此构建失败。
所以,当出现错误时,我运行了 make -j1 命令而不是默认的 make,只运行了一个 java 和 ninja 进程,所以不需要那么多内存,就编译成功了。
你可以试试我的方法
当发生错误时,您可以运行 make -j1 命令而不是默认命令 make,这样只有一个构建进程正在运行,它不会耗尽您的内存,发生错误时构建系统将继续构建剩余的项目。
通过导致失败的项目后,您可以键入 CTRL + C 来中断构建过程。请记住,只需输入一次,然后等待所有 java 进程退出,以避免引入意外错误。之后,再次键入不带 -j1 的 make 命令,以使用 4 个线程再次构建左侧项目。
最后,你会看到:
构建成功完成 (10:48 (mm:ss))
| 归档时间: |
|
| 查看次数: |
6949 次 |
| 最近记录: |