我有原始资源,偶尔会在构建之间交换或修改,但文件名不会更改,而 aapt 不会合并这些更改;它使用以前版本的 bin/MyThing.ap_
(我猜这是他们被藏起来的地方)。来自 ant debug
:
[echo] Handling Resources...
[aapt] No changed resources. R.java and Manifest.java untouched.
...
-package-resources:
[aapt] No changed resources or assets. WhereWhen.ap_ remains untouched
我发现的解决此问题的唯一方法是移动/重命名文件,构建,然后将它们移动/重命名并再次构建。
在线搜索时,我注意到 Eclipse 中有一些指向和单击设置以适本地强制刷新资源,但我没有使用 Eclipse。有什么我可以在 ant 文件中设置的吗?
最佳答案
我在对各种 channel 使用混淆和发布时遇到了同样的问题。根本原因是aapt使用源文件的时间戳来判断是否存在变化的资源。更可靠的解决方案是更改任何源文件的时间戳,推荐使用 AndroidManifest.xml。在 ant 调用发布之前,我使用 ant 或 build.xml 来执行此操作。
<touch file="AndroidManifest.xml" datetime="now"/>
<antcall target="release" />
关于android - 强制 aapt 在构建期间重新评估原始资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19879597/