2011-09-14 7 views
3

Eclipseはライブラリを実行できないことを知っていますが、それは私には不必要かつ不幸な制限のようです。私はときどき基本的なものを拡張した派生プロジェクトを作っています。なぜそれをするために共有ライブラリプロジェクトを除外しなければならないのか分かりません。*なぜ、アンドロイドのライブラリプロジェクトを起動できないのですか?

1つのライブラリを使用するアプリケーションが1つだけであったとしても、そのライブラリがどのように使用されるかを示す簡単な自己完結型のテストプログラムを実行できるようにすることができます。それはまた、図書館の健全性テストとして役立ちます。私はこれをJava Swingライブラリで何年もやってきましたが、それは美しく機能していますので、ここではその制限について理解していません。もしEclipseが共有ライブラリをいつ再構築するのが良いか分かっていれば、これは苦痛ではないかもしれませんが、そのまま共有ライブラリを維持する必要がある時には本当にジレンマがあります。

これは、Androidのバグ、Eclipseのバグ、または2つの不幸な副作用として表示する必要がありますか?それにもかかわらず、他の人にこの問題に直面してもらい、もしそうなら、あなたはどのように対処しましたか?

+0

私はそれが単なる設計上の決定だったと思う、Googleは単体テストを使用したい。 – schwiz

答えて

1

Eclipseでライブラリを実行できないことがわかっていますが、それは私にとって不必要で不幸な制限のようです。

これはEclipseの制限ではありません。 AndroidライブラリプロジェクトはAndroidアプリケーションではないため、Eclipseやコマンドラインから実行することはできません。

私はまだ、そのライブラリをどのように使用することが期待されるかを示す簡単な自己完結型のテストプログラムを実行できるようにしたいと考えています。

あなたは私が何を行うには、サンプルとしての役割を果たすdemo/サブプロジェクトを作成することができます。さらに、これは、サンプルが他のプロジェクトがライブラリを使用する方法と同じように実際にライブラリを使用するのを確実にするのに役立ちます。

これは、ライブラリの健全性テストとしても役立ちます。

他のプロジェクトがライブラリを使用する方法でライブラリを使用しないため、いいえ、そうではありません。同様に、Swing JARのサンプルアプリケーションは、JARの不適切なテストとして機能するため、スイングJAR自体に含まれてはいけません(JARを実稼働環境で使用するための拡張はありません)。

これは、Androidのバグ、Eclipseのバグ、または2つの不幸な副作用として表示する必要がありますか?

IMHOのいずれも上記のいずれでもありません。私は、あなたのテスト/サンプルコードとプロダクションコードを分けておくという、良いプログラミング実践を強制する助けと見ています。

+1

別の言い方をしましょう。自分でうまく動作するアプリを開発しましたが、基本クラスとして使用することでメリットがあります。実際に派生アプリを作成するには、ライブラリとして組み込む必要があります。ライブラリプロジェクトとしてフラグを立てるボックスをチェックすると、アプリとしてパッケージ化する能力が失われます。そのボックスのチェックを外すと、もう一度使ってみましょう。技術的には、私はそれを前後に反転させることで欲しいものを手に入れることができますが、Eclipseをあまりにも混乱させてしまうのは面倒です。私はまだこの制限の背後にある理由を理解していません。私はあなたのサブプロジェクトのアイデアが好きです。 –

+0

"AndroidライブラリプロジェクトはAndroidアプリケーションではありません"ただし、ライブラリとアプリケーションの間には違いはありません。意味がない。 – njzk2

関連する問題