1

ネットワーク呼び出し機能のみを含む単純なAndroidライブラリプロジェクトがあります。XML/リソースなどを呼び出すアプリケーションに継承する必要はありません。Eclipse IDEを使用してこのプロジェクトをビルドすると(プロジェクトを右クリックしてをクリックBuild Project)、の下にJARが生成されbin/libproject.jarます。このファイルを任意のプロジェクトのビルドパスにドロップするだけで、正常に機能します。

ここで、ライブラリの継続的インテグレーションを実装したいと思います。つまり、同じことを実現するためのコマンドラインの方法が必要です(を使用してプロジェクトをビルドする場合は、jarをビルドしますant)。Antはプロジェクトを別の方法で構築します。と同じではないフォルダに作成classes.jarします。bin/libproject.jar

Eclipse Build Project(ADT rev-21)は、私のライブラリプロジェクト用にこの完全なJARを構築するために何か魔法のようなことをしていると思います(これはJARのようなJavaプロジェクトに似ています)。

コマンドラインを使用して同じことを実現する方法を知っていますか?

4

1 に答える 1

0

Eclipse 4.3 w/antおよびsdkツール21.1を使用しているim

IMO-最近、libの依存関係に関するSDKを変更しました。

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

上記のリンクを参照してください。

私の例のlib依存関係(推移的)は次のとおりです:

ABS <== SlidingMenu <== MyProject

したがって、SM.project.propertiesでは... android.library.reference.1 = .. / .. / src / ABS / library

そして、MP.project.propertiesで... android.library.reference.1 = .. / .. / src / SlidingMenu / library

antビルドは、eclipse内部のantビルドツールを使用してproj = SMで実行するか、eclipseの外部のターミナルセッションでCLIでantを実行すると、次のようになります。

[javac] Note: Recompile with -Xlint:deprecation for details.
 [echo] Creating library output jar file...
  [jar] Building jar: /home/rob/src/tools/ActionBarSherlock-4.2.0/library/bin/classes.jar

ant build、proj = MPで実行すると、次のようになります。

      Setting project property: out.library.jar.file -> /home/rob/src/SlidingMenu/library/bin/classes.jar
..
      [jar] Building jar: /home/rob/src/SlidingMenu/library/bin/classes.jar

IMO-あなたは2つのことに集中する必要があります:

依存関係のfile=project.propertiesで正しいlib参照を取得します。

プロジェクトのEclipseを再確認します/properties/javaビルドパス/注文してエクスポートします

「注文のエクスポート」に関連する複数の特定の注記が含まれているため、リンクをお読みください。

antで依存プロジェクトをビルドすると、他のプロジェクトのビルドを内部的にトリガーする必要があります。これは、依存プロジェクトのビルドパスで制御されていると思います。

デバッグに関する追加の注意事項-ランチャーが2つの依存プロジェクトの「classes.jar」を好まなかったため、プロジェクトエクスプローラーから直接デバッグできませんでした。デバッグは、各ライブラリの./binディレクトリに「${project-name}.jar」という名前のjarがあることを主張しました。しかし、antは上記のように「classes.jar」を割り当てます。

したがって、デバッグするために、EclipseでDDMSタブの代替方法を使用しました。アプリはすでに実行されています。次に、プロセスを見つけてデバッガーを接続します。

于 2013-03-14T17:31:39.973 に答える