3

Android の新しい機能の 1 つは、ライブラリ プロジェクトを作成する機能です。

これは、単体テストを行い、開発中の多くのアプリで共通の機能を共有するのに最適ですが、それらの実装でバグに遭遇したようです.

次のような場合:

-ビルド パスにLibraryProject含まれています。LibraryProject/libs/folder/lib.jar

-ReferencingProject参照LibraryProject

内部ReferencingProjectには何もアクセスできませんlib.jar( 内のメソッドとの通信に使用される定数などLibrary Project)。

これに対する解決策は、参照プロジェクトに「lib.jar」を外部ライブラリとして含めることですが、このアプローチでは、移動/変更される可能性のあるリソースへの手動で追加された複数の参照を作成することにより、自己完結型のライブラリ プロジェクトを持つことから得られる利点が無効になります。ライブラリプロジェクトの開発中 (かなり紛らわしいエラーが発生することは言うまでもありません)。

含まれている libs クラスを外部 jar として手動で参照することなく、参照プロジェクトに公開する方法はありますか?

4

1 に答える 1

5

@Selvinが言うように、

ライブラリプロジェクトでは、以下を使用して表示されるウィンドウで「エクスポート済み」としてマークするライブラリを指定できますProject properties => Java Build Path => Order and Export。この例から、を確認しlibs/folder/lib.jarます。

ライブラリプロジェクトをクリーンアップしてビルドすると、「エクスポートされた」ライブラリが生成されたjarに含まれるようになります。

編集

これは、ADT 17へのアップグレードの症状です-(Androidチーム:アップデートによって既存のアーキテクチャが破損した場合、リリースノートにいくつかの警告を表示する可能性がありますか?)

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

ライブラリを追加したくない場合は、"Order and Export"ローカルjarを/libs/ ベースフォルダに配置すると、共有ライブラリから作成されたjarにエクスポートされる「Android依存関係」に自動的に追加されます。

EDIT2

最近のADTアップグレードでは、Javaビルドパスで「エクスポート済み」として「Android依存関係」を手動で選択することもできます。繰り返しますが、警告がいいでしょう。

于 2012-04-11T15:55:26.337 に答える