在编译android4.4的时候libwebviewchromium.so时停止很长时间发生错误

来源:互联网 发布:unity3d制作的小游戏 编辑:程序博客网 时间:2024/06/06 09:14

1.问题描述

        编译android4.4的时候,突然编译停止在

target SharedLib: libwebviewchromium (out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so)

最后出现编译错误:

    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)) ####

2.问题分析

       android在编译的时候占用大量的内存,如果物理内存不够用,则会用swap内存来替代;如果swap空间太小,android编译就会出错。


3.解决方案

        1.增加电脑的内存条。2.给虚拟机分配多一些内存。3.增加swap分区的大小。3.重启ubuntu。

        第一个方案有时候不太实际,见效慢一点,但长远来看是很值得去做。第二个方案是可行的,但受限于你电脑的总内存。第三个方案可行,只不过swap分区其实就是硬盘空间,访问速度比不上内存,但毕竟便宜。第四种方案是在前两三种方案不见效的时候可以试试。

        本人给虚拟机分配了8G的内存空间,还是出现那个问题,然后我给虚拟机增加了swap分区,问题还是没有解决。最后重启虚拟机,再编译一次就通过了。想了一下,猜测是之前编译错误后再尝试过两次,导致虚拟机的内存空间一直被占用,没有释放,在重启虚拟机的时候就释放了所有内存空间。

编译完之后,内存占用如下:

topeet@ubuntu:~/Android$ free             total       used       free     shared    buffers     cachedMem:       8174784    7063752    1111032          0      22512    6379800-/+ buffers/cache:     661440    7513344Swap:      2047992      20848    2027144



1 0
原创粉丝点击