1. ホーム
  2. android

[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する

2022-07-05 23:49:42

質問

これは、EclipseでAndroidプロジェクトにサードパーティライブラリ(JAR)を追加することについての2つの部分からなる質問です。

質問の最初の部分は、サード パーティの JAR (ライブラリ) を私の Android プロジェクトに追加しようとすると、まず以下の問題が発生します。

XMLの解析エラー: 結合されていない接頭辞

というのは、私はその JAR からクラスを使用しようとしているからです (そして、何らかの形で定義されたプレフィックスが必要です)。どうなっているのでしょうか?

第二に、(それを修正した後--答えは下にあります)私のアプリケーションはAndroid上で動作せず、私が消費しようとしているクラスが存在しないことをデバッガ (LogCat) を介して発見しました。

原因は java.lang.ClassNotFoundException が発生しました。 com.github.droidfu.widgets.WebImageView...

Eclipseではコンパイルエラーもリンカエラーも出ないのに、なぜエミュレータではこのような問題が発生するのでしょうか?

これらの 2 つの質問は、以下に私自身が回答するためのレトリックです。このフォーラムの他の投稿は問題に忍び寄り、他の場所では議論が行われていますが、私は、次に来る人のために、より明確に役立つことができると感じています。

どのように解決するのですか?

さて、次は欠席問題です。

私は Eclipse Java EE 開発者ですが、ビルド パスの "ユーザー ライブラリ" メカニズムを介してサード パーティ ライブラリを追加する習慣を何年も続けています。もちろん、サード パーティ ライブラリを追加する方法は少なくとも 3 つありますが、私が使用している方法が最もエレガントであると、私は考えています。

しかし、これは Android では動作しません。Android の Dalvik "JVM" は、通常の Java コンパイルされたクラスを処理できず、特別な形式に変換する必要があります。これは、私が行おうとしている方法でライブラリを追加したときには起こりません。

代わりに、サードパーティー製ライブラリーをインポートするための (広く入手可能な) 手順に従い、次に Build Path (コンパイルのために Eclipse にそれを知らせる) を使用して追加します。以下はそのステップバイステップです。

  1. 開発システムのホストにライブラリをダウンロードします。 開発システムへダウンロードします。
  2. 新しいフォルダを作成します。 libs を作成します。 を作成します。
  3. 右クリックで libs を選択し インポート -> 一般 -> ファイルシステム] を選択します。 を選択し、次に、ファイルシステム内を参照 をクリックして、ライブラリの親ディレクトリを探します。 ディレクトリ(つまり、あなたが ダウンロードした場所)を見つけます。
  4. OK] をクリックし、次に ディレクトリ名 (チェックボックスではありません) を をクリックし、右側のペインで 右ペインで関連する JAR をチェックします。これにより をクリックすると、ライブラリがプロジェクトに (物理的に) 入ります。
  5. プロジェクト上で右クリックします。 ビルド パス -> ビルド パスの構成] を選択します。 Path を選択し、Libraries タブをクリックします。 をクリックし、JARの追加...を選択し、新しいJARにナビゲートします。 にある新しい JAR に移動します。 libs ディレクトリにある新しいJARに移動し を追加します。(ちなみに、これは新しい JAR が Android で使用するために変換される瞬間です)。

注意

libがすでにビルドパスに含まれている場合、ステップ5は必要ないかもしれません。ただ、追加する前に、まずその存在を確認してください。

ここで行ったことは、2つのことを達成することになります。

  1. Dalvik 変換された JAR を Android プロジェクトに含める をAndroidプロジェクトに含める。
  2. Java 定義を利用可能にします。 サードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用できるようにします。 サードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用できるようにします。 プロジェクトのソースコードを開発する (つまり、コンパイルする) 際にサードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用可能にします。