IDEを使用して正常にビルドする既存のプロジェクトがあります。 " Android update "コマンドを使用して、このプロジェクトのantビルドファイルを生成したいと思います。
ビルドファイルは正常に生成されますが、libsディレクトリにあるいくつかのjarファイルでビルドされていないため、ビルドは失敗します。
Libsディレクトリにあるいくつかの外部jarファイルを使用してビルドするようにantに指示する適切な方法を見つけたいと思います。どうすればよいですか?それはbuild.propertiesのプロパティですか?どういうわけかbuild.xmlを変更する必要がありますか?それともまったく別の解決策がありますか?
FacebookAPIをantで動作させるためにしばらく時間を費やしました。私にとっての秘訣は、これをdefault.propertiesファイルに追加することでした。
Android.library.reference.1=../Facebook
../FacebookにはAndroidManifest.xmlなどが含まれています。実際のキーは相対パスです。 Antはプロジェクトディレクトリをルートとして扱っているように見えるため、絶対パスは使用しないでください。
これは、ソースコードからインクルードしている他のライブラリプロジェクトにも当てはまります。
私は同様の問題を扱っていました。標準のAntbuild.xml(Android SDKによって生成された)を使用して、JenkinsでAndroidプロジェクトをビルドしています。また、いくつかの共有ドメインクラスを持つ別のJavaプロジェクトへの参照もあります。 Eclipseでは問題はありません。ドメインプロジェクトはプロジェクトリファレンスです。ただし、Jenkinsでは、このdomain.jarはMavenによってビルドされており、Androidプロジェクトからはアクセスできませんでした。
Build.xmlの最後にこれを追加することで、ようやく解決しました。
<target name="-pre-build">
<copy todir="${jar.libs.dir}">
<fileset
dir="../path-to-another-project/target"
includes="*.jar" />
</copy>
</target>
これにより、すべてのjarが別のプロジェクトのターゲットディレクトリからAndroidプロジェクトの「libs」ディレクトリにコピーされます。 -pre-build Antターゲットは、Androidコンパイルが開始される前に自動的に呼び出されます。
ただし、ビルドスクリプトをさらに変更する予定がある場合は、カスタムにする必要があるよりも、Markに同意します。 Android/platform/Android-PLATFORMVERSION/templates/Android_rules.xmlからbuild.xmlにタスクを移動し、変更するものをすべて変更します。外部ライブラリの場所を含みます。
このリンクを参照してください、これは私を助けました