ANTを使用してAndroidプロジェクトを構築するために、共通ディレクトリ(LIBではなく)に外部JARファイルを参照するにはどうすればよいですか?
解決
SDKには、下にアリファイルがあります tools/ant
. 。の main_rules.xml
, 、次のコードセクションを見つけることができます。
<!-- Directory for the third party java libraries -->
<property name="jar.libs.dir" value="libs" />
<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />
<!-- create a path with all the jar files, from the main project and the
libraries -->
<path id="jar.libs.ref">
<fileset dir="${jar.libs.absolute.dir}" includes="*.jar" />
<path refid="project.libraries.jars" />
</path>
これは、ANTビルドコードがジャーをどこから取得するかを決定する方法です。の値を過負荷にすることができます jar.libs.dir
build.propertiesでは、このセクションの前に読まれ、値に過負荷になります。共通のディレクトリで、使用することを意図していると、提案していることを行うことを指摘します。あなたはそれを使ってあなたが望むように動作させるためにいくつかをプレイする必要があるかもしれません。
1つの警告は、これが他のビルドライフサイクルアクティビティに悪影響を与えるかどうかはわかりません。
他のヒント
新しいSDKツールにより、これが簡単に達成できるように見えます。すべてのAndroidプロジェクトが共有するマスターLIBSフォルダーがあり、これを追加しました ant.properties
それらのLibsの1つのレベルを調べるためのファイル。
jar.libs.dir=../libs
質問に従って ここ そして、私の答えは撮影されました ここ, 、提供されたソリューションは今のところ機能しません。提出されたバグが修正されるまで。参照された回答に記載されているように、ソリューションを以下にコピーします。
これを私に追加します custom_rules.xml
テンプレートとそれは正常に動作しているようです。私はそれがパスを追加するよりもほんの数行しかないと思っていました ant.properties
より良いソリューションが得られるまでファイルします。
<target name="-pre-compile">
<path id="project.all.jars.path">
<path path="${toString:project.all.jars.path}"/>
<fileset dir="${jar.libs.dir}">
<include name="*.jar"/>
</fileset>
</path>
</target>
Linuxを使用する場合は、外部JARファイルのシンボリックリンクを作成するだけで、それらをすべてに配置します libs
. 。アリはうまく機能します。
編集
すべてのシンボリックリンクを直接配置してください libs
(サブディレクトリではありません)。これはAnt Scriptによる再構成になると確信しています。しかし、私はアリに精通していません:-)