zip error: Invalid command arguments

在编译使用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文件夹删掉。

原文地址:https://www.cnblogs.com/cww0403/p/3545352.html