从国内清华大学的源码镜像网站上下载的Android5.0.2的全部源码,按照android官方提供的编译方法及命令,在编译过程中遇到了下面的问题。
编译了大约6小时后,开始编译libwebviewchromium模块
此时,终端屏幕显示如下提示信息:
target SharedLib: libwebviewchromium (out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so)
经过大约2个小时后,终端有了如下的错误信息提示:
build/core/shared_library_internal.mk:68 recipe for target 'out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so' failed
make: ** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] Error 1
make: ** Deleting file 'out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so'
make: Leaving directory 'home/username/android'
#### make failed to build some target (07:53:05 (hh:mm:ss)) ####
网上有老师说是因为没有设置Linux的swap原因,我看过之后感觉挺有道理,就如下操作了一番。
# dd if=/dev/zero of=/opt/other/swapfile bs=1024 count=512K
# mkswap /opt/other/swapfile
# swapon /opt/other/swapfile
# swapon -s
# sudo gedit /etc/fstab
/opt/other/swapfile file 524280 0 -1
(详细意义及说明可以上网搜索"linux dd"得到相关信息)
重新再次编译。又是七八个小时的苦苦等待,结果还是失败了。
后来又仔细研究了一下swap,感觉还是刚才设置的swap文件太小,从而导致libwebviewchromium模块编译不过。
所以,我又重新设置了一次swap,这次还用了两个swap文件,每个swap的大小都设置为1G,使用了下面的命令:
1.#dd if=/dev/zero of=/opt/swap1 bs=1024 count=1024000
(count的值等于1024 x 你想要的文件大小, 4096000是4G,1024000是1G)
2.#mkswap /opt/swap1
(把这个文件变成swap文件)
3.#swapon /opt/swap1
(启用这个swap文件)
4.为了使每次开机时都能正常使用swap文件,所以这里需要把swap文件增加到fstab文件中
#sudo vi /etc/fstab
在最后一行增加如下内容
/opt/swap1 swap swap defaults 0 0
重复上述4步,再次增加一个/opt/swap2的文件。
这样再次重新编译源码,耗时11小时57分钟,成功完成。
后话,编译到libwebviewchromium模块或其他模块停止不动时,网上有人说从硬件上增加自己电脑的内存也是可以的,这个没试过。