2012-02-12 8 views
0

私はライブラリアンドロイドプロジェクト "ライブラリ"(アクティビティとすべて)と、 "ライブラリ"をソースコードから使用する通常のアンドロイドプロジェクト "App"を持っています。ライブラリは別々にコンパイルされません。他のサードパーティのライブラリを使用しているAndroidライブラリプロジェクト

すべてうまく動作します。問題は、サードパーティのコンパイル済みのjars "External Jars"を使用することです。 私の "Library"はすべての "External Jars"を使用しています。 "App"は "Library"にのみアクセスできます。 「外部ジャー」は「ライブラリ」によってのみアクセスされます。

問題は、「App」が正しく機能するためのビルドパスに「External Jars」がすべて必要なことです。その必要性は何ですか? 「App」は「External Jars」を直接呼び出すことはありません。

私は「App」と「Library」にJarsを含めました。 「App」に「Jars」を作成する必要はありません。

私は追加のアプリケーションサイズについて心配しているので、私はプロガードをそのように動作させることができないので、これを尋ねます。

答えて

1

あなたが依存する外部ライブラリプロジェクトは、そのライブラリをlibsディレクトリに含める必要があります。アンドロイド構築プロセスは、apkの構築の一環として、これらをライブラリから取り込むことに注意します。これは時にEclipseの問題を引き起こします。たとえあなたがEclipseを "参照されたライブラリ"またはプロジェクト構築パスに追加する必要があるとしても、apkを生成するとき、ライブラリがアンドロイドライブラリであり、依存関係がlibsの場合、特別なことをする必要はありません。

+0

だから食い問題ですか?私はアリで起こっているのを見ないので。 – weakwire

+1

これはちょっと複雑です:)あなたがantを使ってビルドするとき、ライブラリをビルドしてjarファイルにするライブラリビルドステップがあります。 eclipseでは、プロジェクトにソースをリンクすることによって、ライブラリー・プロジェクトにアクセスします。 antビルドでは、ライブラリの依存関係をjarにコンパイルする余分なステップが必要ですが、eclipseはそうではありません。これは、Eclipseにワークブックでコンパイルするために、ライブラリの依存関係を親に手動で追加する必要があることを意味します。私はなぜその制限が存在するか分からないが、それはちょうど日食のツールの問題であるようだ。 –

関連する問題