在编译使用svn管理的android代码时,会出现如下错误:
zip error: Invalid command arguments (cannot repeat names in zip file)
make: *** [out/target/product/xxxxx/system/etc/recovery-resource.dat] Error 16
make: *** Waiting for unfinished jobs....
原因是因为编译recovery的时候把.svn目录拷贝到了out目录下
./recovery/root/res/images/.svn
./recovery/root/res/.svn
网上提供的解决方法没有去试:
1、安装subversion1.7;
PS:服务器用的是visualSVN,有同事装了subversion1.7发现有问题,于是就没试。
2、删除所有目录下的.svn文件。
PS:这个都删除了,更新代码怎么办。
这里提供一个最简单的解决方案:
修改build/core/main.mk
$(shell build/tools/findleaves.py --prune=$(OUT_DIR) --prune=.repo --prune=.git --prune=.svn $(subdirs) Android.mk)
添加 --prune=.svn即可。
修改buid/core/Makefile
$(hide) cp -rf $(recovery_resources_common) $(TARGET_RECOVERY_ROOT_OUT)/
$(hide) rm -rf $(TARGET_RECOVERY_ROOT_OUT)/res/.svn $(TARGET_RECOVERY_ROOT_OUT)/res/images/.svn //添加这一行
$(hide) cp -f $(recovery_font) $(TARGET_RECOVERY_ROOT_OUT)/res/images/font.png
注意:要把out目录下的.svn文件夹删掉。