一个不小心引发的问题,installation failed invalid argument

昨天在一个偶然的不小心中,出现了一个问题,如图

翻译过来就是“安装失败,参数非法”,我也就是换了个图片文件夹,为什么会出现这种错误呢?

一.错误原因猜想

之前都是好的,没有问题的,我只是从svn上更新了个图片文件夹,然后本地少了图片,懒得找,就把原来的 Remove Reference,再重新拉取,怎么就不行了了?那么问题肯定出现在这个图片上,于是我就再看了下文件夹,发现

看到没,之前的文件夹都是黄色的,这个文件夹怎么变成蓝色的了?不过应该没有问题吧,里面有图片啊,如图

查了这个错误都是清缓存,重置模拟器等,试了试,都不行,于是搜了下这个蓝色文件夹和黄色文件夹的区别。

二.跟踪问题

原来是这样子,黄色的文件夹是group,蓝色的是folder

group :一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的。

folder: 只能作为资源,整个引用进项目,不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie> sources列表里面。

我们比如拉图片或者第三方进工程的时候,会出现如下:

我们会发现在第二个选项Added folders这儿有两个选择

  1. Create groups
  2. Create folder references

这里我们一般选择的都是第一项Create groups,没有发现任何问题。而这次我选择的是第二项Create folder references,点击完成,如下图所示,文件夹是蓝色的,并且编译文件列表里面没有 MBProgressHUD.m这个文件,证明文件夹引用,只会引用文件夹,文件夹里面的东西都会直接拷贝到 bundle 包,不参与编译。

而如果我选择group,会发现

Co‘mpile Sources 里面是有MBProgressHUD.m的。

这里就是groupfolder的区别了,原来folder是这个样子的,不知道苹果搞出来哥folder有什么意义,这里我们平时用的大多都是group的,所以估计平时都没注意这儿,现在可以有一定了解了。

三.解决问题

OK,问题找到了,那么解决吧,把这个蓝色的也就是folder文件夹删除重新拉一个,选择group,然后运行编译,竟然还是这个问题

installation failed invalid argument

oh,my god !这什么情况,于是重置模拟器,clean工程,都没用,后来在这里发现一个帖子

里面讲了

这才恍然大悟,既然folder参与了编译,只是里面的文件没有被引用,重置模拟器肯定是没有用的,把本地文件里面的缓存清了然后重新运行肯定就是新的group的路径了,要不运行的还是folder的缓存路径,果然,清完缓存后Build Succeeded,到此,这个问题就解决了。

四.最后

最后总结一下,遇到问题首先找到问题的根结,然后分析解决,对于平时没有在意的地方这种错误也需要注意,因为惯性思维可能使你没有往这方面的原因上面想,总之,写程序还是要小心啊!

版权声明:本文为博主原创文章,转载请注明出处,谢谢。

时间: 2024-10-12 19:46:02

一个不小心引发的问题,installation failed invalid argument的相关文章

iOS 开发之 Xcode installation failed invalid argument!

1.运行模拟器的时候 报出:installation failed invalid argument! 原因分析:我把Bundle indentifier 置为空了! http://stackoverflow.com/questions/27037589/xcode-6-1-installation-failed-invalid-argument-when-trying-to-run-today-appli/28193369

iOS 开发之 Xcode6 installation failed invalid argument!

1.运行模拟器的时候 报出: installation failed invalid argument! 原因分析: 我把Bundle indentifier 置为空了! http://stackoverflow.com/questions/27037589/xcode-6-1-installation-failed-invalid-argument-when-trying-to-run-today-appli/28193369

nginx或者php-fpm 启动时报错 “shmget() failed: Invalid argument”

博客:http://lijinhuan.blog.51cto.com/ 微博:http://weibo.com/lijinhuanexperience 代码:https://github.com/lijinhuan 报错详情:shmget() failed: Invalid argumentFailed to start up concurrent users module! 原因:kernel.shmmax设置未生效 解决方法:[[email protected] ~]# sysctl -a

swapon failed invalid argument

parrot os(不仅仅是debian系统),分区提示,查看系统格式为btrfs,需要注意的是btrfs无法添加swap分区,但是可以在5.0内核以上添加 以下命令,完成创建8g的swap分区 ouch /swapfile chattr +C /swapfile fallocate -l 8G /swapfile chmod 0600 /swapfile mkswap /swapfile swapon /swapfile free -h 添加到/etc/fstab中实现开机挂载 vim /et

Android 模拟机出现Installation failed due to invalid URI!错误

[2017-03-28 09:52:13 - DataVDemo06] Installation failed due to invalid URI![2017-03-28 09:52:13 - DataVDemo06] Please check logcat output for more details.[2017-03-28 09:52:13 - DataVDemo06] Launch canceled![2017-03-28 09:53:25 - DataVDemo06] /DataVD

一个回车符引发的问题思考

在维护和开发通信类软件产品的过程中,经常需要处理一些软件故障问题.在问题刚出现的时候,大家可能显得手足无措,有一种天都要塌下来的感觉.但在问题原因找到之后,大家又会觉得问题原因非常的简单,要是当初开发的时候仔细一点,是不会犯这样的低级错误的.最近,本人就遇到了一个回车符引发的问题. 近日,在开发某软件版本时需要对文件进行操作,在代码中使用了Linux C语言中的opendir函数,但是该函数始终返回NULL,提示文件路径不存在. 本人查了一下该函数的具体情况.opendir函数的原型为: DIR

一个二级菜单引发的血案

近期发现自己css不是很好,于是又看了一遍<css权威指南>.总感觉自己抓不到重点.弃疗中...于是看看其他书.然后学妹跟我说她的二级菜单写得很乱.当时我心里就在想二级菜单,有何难?自认为10分钟能搞定.跟她要效果图并很自大的说了句“等会儿,我写个简单的”.于是血案由此引发... 二级菜单要实现的原效果图是: (如发现雷同,不是巧合,是我从别的网页上截屏下来的 ~_~).既然说了简单,肯定效果没这么精美.但是至少基本效果和原理要实现. 10分钟过去了....15分钟过去了....这个“等会儿”

Android Studio: Application Installation Failed

[Android Studio: Application Installation Failed] 参考:http://stackoverflow.com/questions/32718044/android-studio-application-installation-failed

Android开发调试Installation failed since the device possibly has stale dexed jars

今天写完代码运行时,出现了程序安装失败的对话框: Installation failed since the device possibly has stale dexed jars that don't match the current version (dexopt error). In order to proceed, you have to uninstall the existing application. WARNING: Uninstalling will remove th