这两天有个客户要求在系统中添加十来个默认APK,本来很简单的事情,直接将apk丢进去
然后编译就行了的,结果居然报错,报错的信息如下:
Creating filesystem with parameters:
Size: 251658240
Block size: 4096
Blocks per group: 32768
Inodes per group: 7680
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 61440
Block groups: 2
Reserved block group size: 15
error: do_inode_allocate_extents: Failed to allocate 1162 blocks
make: *** [out/target/product/m1090/obj/PACKAGING/systemimage_intermediates/system.img] 错误 4
看到这个错误,我的第一反应就是:难道是没有make clean导致的,因为经常出现一些问题都是因为没有clean
于是我执行了clean之后继续编译,等了两三个小时,快编译完的时候又出现这个问题。
我到网上搜了下,在这个网站上得到相应的回答:http://blog.csdn.net/pengjin1985/article/details/7535165
没有用,因为我的配置文件里面已经设置了BOARD_SYSTEMIMAGE_PARTITION_SIZE的大小了
,我发现我仅仅是添加了默认APK就产生了这个错误,如果去掉,就不会产生。我查看了
一下默认APK的大小,140M这么大,我的系统是tf卡启动模式,里面有个参数
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 240M,也就是说最后生成的文件系统是240M的,
所以我怀疑是默认APK太大,导致不能压缩到240M,于是我取出了三个默认APK,大概70M,然后
重新编译,通过了,果然是这个问题。
为什么以前添加300M的默认apk也没有出现这个问题呢,应该是以前是nand启动,并没有去限定
文件系统的大小,所以可以任意加。