我正在尝试使用命令行中的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
目录
答案 0 :(得分:14)
我认为解决方案是使用--auto-add-overlay
标志。我通过运行带有-v
的默认Ant构建脚本来发现这一点,用于详细模式。