9

コマンドラインから 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

4

1 に答える 1

16

解決策は--auto-add-overlayフラグを使用することだと思います。-v詳細モードでデフォルトのAntビルドスクリプトを実行することで、これを発見しました。

于 2012-07-20T15:28:55.697 に答える