android - 强制 aapt 在构建期间重新评估原始资源

标签 android aapt

我有原始资源,偶尔会在构建之间交换或修改,但文件名不会更改,而 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/

相关文章:

android - 错误:在< list > <应用程序>中找到意外元素<uses-sdk>

android - 如何使用 Android aaptOptions?

具有自定义阴影颜色的 Android CardView

java - 我如何使用 volley 将 json 对象发布到 Watson Studio API

java - String.equal() 函数无法处理 `R.string` 中的值

java - 错误 : input directory 'Files' does not exist

java - 如何从两个库类继承?如果不可能,有什么替代方案?

android - 将渐变应用于 android 中 ListView 中的行

android - 如何解决AAPT错误

android - 使用 android gradle 插件运行 aapt