13

Ant を使用して同じ jar ファイルを参照する複数の Android プロジェクトをビルドしたいと考えています。プロジェクト内の各 libs ディレクトリに jar ファイルをコピーしたくありません (ソース管理ツリーの設定方法のため)。私がここで見つけ答えは、この問題を解決しない「libsディレクトリに置く」と言います。

問題は、Android ant ビルド スクリプトを構成して、プロジェクトの外部 (「libs」ではなく) の別のディレクトリにある共通の jar を参照するにはどうすればよいかということです。

4

4 に答える 4

9

sdk では、 の下に ant ファイルがあります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 を取得する場所を決定する方法です。jar.libs.dirこのセクションの前に読み込まれ、値がオーバーロードされるため、build.propertiesの値をオーバーロードできます。使用する予定の共通ディレクトリを指すと、提案したことが実行されます。思い通りに動作させるには、いくつか試してみる必要があるかもしれません。

1 つの注意点は、これが他のビルド ライフ サイクル アクティビティに悪影響を与えるかどうかわからないということです。

于 2011-03-15T13:42:19.440 に答える
7

新しいsdkツールを使用すると、これを簡単に実現できるようです。すべての Android プロジェクトが共有するマスター libs フォルダーがあり、これをant.propertiesファイルに追加して、それらの libs の 1 レベルを検索できるようにしました。

jar.libs.dir=../libs
于 2011-12-20T17:42:14.747 に答える
3

ここでの質問とここから得た私の回答によると、提供されたソリューションは現在のところ機能しません。提出されたバグが修正されるまで。参照された回答に記載されているソリューションを以下にコピーします。


これをテンプレートに追加しましたが、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>
于 2012-12-29T09:05:39.727 に答える