[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
質問
これは、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 にそれを知らせる) を使用して追加します。以下はそのステップバイステップです。
- 開発システムのホストにライブラリをダウンロードします。 開発システムへダウンロードします。
- 新しいフォルダを作成します。 libs を作成します。 を作成します。
- 右クリックで libs を選択し インポート -> 一般 -> ファイルシステム] を選択します。 を選択し、次に、ファイルシステム内を参照 をクリックして、ライブラリの親ディレクトリを探します。 ディレクトリ(つまり、あなたが ダウンロードした場所)を見つけます。
- OK] をクリックし、次に ディレクトリ名 (チェックボックスではありません) を をクリックし、右側のペインで 右ペインで関連する JAR をチェックします。これにより をクリックすると、ライブラリがプロジェクトに (物理的に) 入ります。
- プロジェクト上で右クリックします。 ビルド パス -> ビルド パスの構成] を選択します。 Path を選択し、Libraries タブをクリックします。 をクリックし、JARの追加...を選択し、新しいJARにナビゲートします。 にある新しい JAR に移動します。 libs ディレクトリにある新しいJARに移動し を追加します。(ちなみに、これは新しい JAR が Android で使用するために変換される瞬間です)。
注意
libがすでにビルドパスに含まれている場合、ステップ5は必要ないかもしれません。ただ、追加する前に、まずその存在を確認してください。
ここで行ったことは、2つのことを達成することになります。
- Dalvik 変換された JAR を Android プロジェクトに含める をAndroidプロジェクトに含める。
- Java 定義を利用可能にします。 サードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用できるようにします。 サードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用できるようにします。 プロジェクトのソースコードを開発する (つまり、コンパイルする) 際にサードパーティーのクラスを見つけるために、Eclipse で Java 定義を利用可能にします。
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] Android Studioにライブラリプロジェクトを追加する方法を教えてください。
-
[解決済み] Androidのエラーです。デバイス*に*.apkをインストールできませんでした: タイムアウト
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】Android Studioです。jarをライブラリとして追加しますか?
-
[解決済み] Androidでビットマップから円形領域を切り取る方法
-
[解決済み] Genymotion、Mavericksで「Unable to load VirtualBox engine. VBoxは正しくセットアップされています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] アンドロイドのスプラッシュスクリーンのサイズは、ldpi、mdpi、hdpi、xhdpiのディスプレイのためのものですか?- 例:1024X768ピクセル(ldpi)。
-
[解決済み] 開発者コンソールでのベータ版/アルファ版テストについての説明が必要です。
-
[解決済み] DialogFragment の setCancelable プロパティが機能しない
-
[解決済み] Android Studio 1.0とエラー "Library projects cannot set applicationId "について
-
[解決済み] Androidでユーザーの非アクティブを検出する方法
-
[解決済み] 警告 あなたのApkは、プライバシーポリシーが必要なパーミッションを使用しています。(android.permission.READ_PHONE_STATE)
-
[解決済み] PreferenceFragmentCompatはpreferenceThemeが設定されている必要があります。