0

しばらくの間、Eclipse エクスポートを使用してアプリの .apk を作成してきましたが、プロセスをカスタマイズできるように、ant を使用してビルドしたいと考えています。他の場所のアドバイスに従って、「android create project」コマンドを使用して、一時プロジェクトに適切な build.xml ファイルを生成しました (そして、それを変更しました)。

ビルドすると、パッケージ ステップで重複ファイル エラーが発生して失敗します。

-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating MyApp-debug-unaligned.apk and signing it with a debug key...
[apkbuilder] Found duplicate file for APK: res/drawable-mdpi/icon.png
[apkbuilder] Origin 1: /home/chris/temp/MyApp/MyApp.ap_
[apkbuilder] Origin 2: /home/chris/git/MyApp/MyApp/res/drawable-mdpi/icon.png
...
 /home/chris/android-sdk-linux_x86/tools/ant/build.xml:310: com.android.sdklib.build.DuplicateFileException: Duplicate files at the same path inside the APK

私のアリのプロパティは次のとおりです。

source.dir=/home/chris/git/MyApp/MyApp
out.dir=/home/chris/temp/MyApp

res ディレクトリの内容と、ビルド時に作成される中間の .ap_ リソース パッケージ ファイルとの競合のようです。重複が避けられないように見えるため、これらの両方のソースからのコンテンツがパッケージに含まれる理由がわかりません。

当初、この問題は res サブディレクトリ (drawable-hdpi、drawable-ldpi、drawable-mdpi) に同じ名前 (icon.png) のファイルが含まれていることが原因であると考えていましたが、これらに別の名前を付けてみましたが、それでもエラーが発生しました。いずれにせよ、Eclipse エクスポート ビルドはそれらを問​​題なく処理します。

この問題は 、ant でビルドするときに Android aapt duplicate files エラーに似ているように見えますが、その場合、Android SDK で提供されているものを使用して独自の build.xml を作成していました。

どんな助けでも大歓迎です。

4

1 に答える 1

0

必ずしも理由ではありませんが、最終的に何が問題を引き起こしているのかを突き止めました。

ant.properties では、

source.dir=/home/chris/git/MyApp/MyApp

になるはずだった

source.dir=/home/chris/git/MyApp/MyApp/src

プロジェクトは git の制御下にあり、入力が通常の場所 (ワークスペース内) にないため、入力の場所を指定する必要があると想定したため、ant.properties のみを作成しました。ビルドは他のプロパティからそれを解決するのに十分スマートなので、これを行う必要はありませんでした。

他の誰かが同じ問題に遭遇した場合に備えて、これを提供しました。

于 2013-12-13T17:23:23.507 に答える