**前段时间编译AOSP 9的代码,下载->编译->刷机 一把梭。这两天编译AOSP 10(虚拟机中编译,用的android-10.0.0_r26 分支,刷入pixel2),期间遇到了下面几个问题,记录一下希望能帮到需要的人,
tip:建议直接刷入真机,模拟器坑太多,每个问题都能让人卡很久,真机基本编译成功,驱动没下错,就可以正常运行,比如我这个pixel2
1 使用输入make -j8刚开始编译后 ninija启动失败 ============================================ [100% 549/549] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja FAILED: out/soong/build.ninja out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp Killed 20:28:01 soong bootstrap failed with: exit status 1 #### failed to build some targets (55 seconds) ####
解决方式:增加内存到16g解决~
2 repo sync 手动中断再继续导致个别文件broken,导致后期编译失败
解决方式:删除所有文件重新repo sync
3 编译到百分之90多 //frameworks/base:api-stubs-docs Metalava FAILED: out/soong/.intermediates/frameworks/base/test-api-stubs-docs/android_common/test-api-stubs-docs-stubs.srcjar...............
解决方式make -j1解决(这时候千万别放弃,别make clobber或者make clean删除编译的产物,继续就行,否则全程用make -j1会让你等到天荒地老)
4 执行 lunch 并不是所有可用的combo都会显示,比如对于我的pixel2,walleye相关的combo只有 21. aosp_walleye-userdebug 22. aosp_walleye_test-userdebug 没有列出我想编译的eng版本。这个时候不通过序号选择,直接输入lunch aosp_walleye-eng去编译是ok的,so just do it