如何在不使用<add-resource>?</add-resource>的情况下使用aapt多个-S值

时间:2012-07-19 21:12:48

标签: android aapt

我正在尝试使用命令行中的aapt来构建R.java。我正在指定多个-S目录,因为我有多个res目录。我正在使用:

进行构建
aapt package \
  -M AndroidManifest.xml \
  -m -J gen \
  -S src/com/example/res \
  -S src/com/example/ui/res

不幸的是,我收到以下错误:

src/com/example/ui/res/values/strings.xml:2: error: Resource at app1_name appears in overlay but not in the base package; use <add-resource> to add.

目前,src/com/example/ui/res/values/strings.xml包含以下内容:

<resources>
    <string name="app1_name">MyAppName</string>
</resources>

我不想将此更改为:

<resources>
    <add-resource type="string" name="app1_name">MyAppName</add-resource>
</resources>

(这是在https://groups.google.com/forum/?fromgroups#!topic/android-porting/bYfeLEjERjg上提出的,虽然它似乎无法解决我的问题。)

我对-S论证应该如何运作的期望是错误的吗?

我能想到的唯一解决方法是将所有-S目录符号链接为根res目录的子目录,并将res指定为唯一的-S目录

1 个答案:

答案 0 :(得分:14)

我认为解决方案是使用--auto-add-overlay标志。我通过运行带有-v的默认Ant构建脚本来发现这一点,用于详细模式。