百度上很多关于Could not find *.apk!这种编译报错的解决帖子,但是笔主在这里主要说一下在引用工程项目的场景下报这个错误消息的问题(不影响本项目的正常编译运行!)。
笔主刚从谷歌上搞了Volley的源码下来,写了一个测试项目,把Volley源码项目引进测试项目时(Java Build Path->Projects),编译过程中发现报了一个红色的错误:
...
[2014-08-25 11:03:16 - AndroidTest] Performing wavky.wand.androidtest.MainActivity activity launch[2014-08-25 11:03:16 - AndroidTest] Uploading AndroidTest.apk onto device 'DMPM6235303695'[2014-08-25 11:03:16 - AndroidTest] Installing AndroidTest.apk...[2014-08-25 11:03:18 - AndroidTest] Success![2014-08-25 11:03:19 - volley] Could not find volley.apk![2014-08-25 11:03:19 - AndroidTest] Starting activity wavky.wand.androidtest.MainActivity on device DMPM...
...
这个消息很容易忽略掉,因为完全不影响测试项目的运行,但还是会很纠结,经过研究发现,应该是Eclipse的识别错误问题,因为Volley源码项目是作为Library库项目的身份存在的(Volley项目Properties->Android->Is Library;测试项目Properties->Android->Library->Add Volley项目),这样的设置ADT会将整个Volley项目编译为jar包放置在bin目录里,而正常项目中的apk包则不再生成,因此Eclipse检测不到这个apk包之后就直接误报了。
解决方法也很简单,把Volley源码项目取消Is Library的勾选,clean & rebuild 一次,生成apk之后再重新勾选回去编译成jar,就OK了