我有一个使用库项目的项目.图书馆计划有draw9(9.png)文件,当通过Ant构建apk时,它正在剥离可缩放和可填充区域的draw9信息.结果是应用程序只是在不使用draw9信息的情况下拉伸图像.在Android的build.xml中
这是调用crunch,它更新预处理的PNG缓存(任何人都知道这个缓存的位置?).
-crunch在aapt中运行一个叫做crunch的任务.但我无法找到有关这些论点的任何信息.它似乎从Res文件夹中取出文件并将其放在out res文件夹中(默认为bin/res).
所以我甚至清除了任务,因此它不会运行紧缩,仍然没有正确拉伸图像.然后我用png文件直接复制到out res文件夹替换它,仍然是同样的问题.我甚至在这些任务之间尝试了干净,我遇到了同样的问题.这让我相信缓存是在项目区域之外进行的,但在哪里?
注意当我用Eclipse构建它时一切都很好.
另一个适合我的解决方案是将这些图像从库中复制到主项目中,但它不是理想的解决方案.
其他人似乎遇到了这种紧缩/资源打包的问题,其中aapt in ant build使用来自其他项目的缓存
在这个错误报告中,他们只提到了缓存,只使用时间戳来检查是否更新缓存.
这似乎是aapt的源代码,但我无法通过阅读来查找此缓存的位置.
找出问题所在
对我来说导致问题的原因是我在Ant中使用不同的文件夹(故意)为我的res,src和bin.有一个引用project.library.res.folder.path,它填充了依赖宏.它指向项目的默认res和bin文件夹.所以我做的是将它们更改为指向我的新文件夹.但在这样做的过程中,我改变了他们被列出的旧版本.它开始将资源文件混合到我正在运行aapt时使用的不同库项目中.当我修改订单时,它编译得很好.我也是为project.library.bin.r.file.path做的.