0

私はアプリAとを持っていますB。でいくつかのメソッドを使用してAほしいB。それは可能ですか?

Bのビルドパスにプロジェクトを追加しようとしましAた。コンパイラはそれで問題ありませんが、ランタイムを取得しますNoClassDefFoundError(プロジェクトから最初に使用されたクラスの場合A)。

私はこれをEclipseで作成しています。

編集:私がそれをする必要がある理由は、私のプロジェクトBがプロジェクトAのテストであるためです。他のことの間でAsynchTasksをテストする必要があり、それがJUnitで機能しないため、通常の方法でテストすることはできませんでした。そこで、カスタムテストを含む通常のAndroidプロジェクトBを作成することを考えました。しかし、それもうまくいかないようであるため、元のテストプロジェクトに戻り、JUnitテストではなくカスタムテストを実装しました。醜い方法ですが、それは機能します。

4

1 に答える 1

2

あなたが説明しているのはLibrary Projectです。複数の Android プロジェクトに共通するソース コードとリソースがある場合は、それらをライブラリ プロジェクトに移動して、アプリケーションやバージョン間での保守を容易にすることができます。したがって、同じコンポーネントの一部を使用する複数の関連アプリケーションを開発している場合は、冗長なコンポーネントをそれぞれのアプリケーション プロジェクトから移動し、同じコンポーネントの単一の再利用可能なセットを別のライブラリ プロジェクトに作成します。

したがって、あなたが説明していることはほとんど可能ですが、完全ではありません。Eclipse では、Android アプリケーション プロジェクト (つまり、.apkファイルにコンパイルされるプロジェクト) をライブラリ プロジェクトとしてA参照BするAことはできません。代わりに、次のことを行う必要があります。

  1. 新しいライブラリ プロジェクトを作成Cします。
  2. 共通のメソッド/クラスをプロジェクトからライブラリ プロジェクトに移動ABますC
  3. AB 参照ライブラリ projectの両方を持っていCます。
于 2012-05-07T08:00:34.453 に答える