ANTを使用してAndroidプロジェクトを構築するために、共通ディレクトリ(LIBではなく)に外部JARファイルを参照するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/5312478

質問

ANTを使用して同じJARファイルを参照するいくつかのAndroidプロジェクトを構築したいと思います。プロジェクトの各LIBSディレクトリにJARファイルをコピーしたくありません(ソースコントロールツリーのセットアップのため)。 回答探す ここでは、この問題を解決しない「LIBSディレクトリに入れてください」と言います。

質問は、Android Antビルドスクリプトを構成するには、プロジェクトの外側の別のディレクトリ(「libs」ではなく)に共通の瓶を参照するように構成するにはどうすればよいですか?

役に立ちましたか?

解決

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による再構成になると確信しています。しかし、私はアリに精通していません:-)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top