web-dev-qa-db-ja.com

Eclipseでは、Android別のライブラリプロジェクトを参照できませんAndroidプロジェクト

この質問を書いているときに、どうにかしてそれを解決したので、他の人のためにここで繰り返します。最初の問題は次のとおりです。

別のプロジェクトで参照したい非常に単純なライブラリプロジェクトを作成しました。私は以前これを問題なく実行しましたので、なぜ今回はうまくいかないのか本当に分かりません。私は持っています:

  1. プロジェクトプロパティを介してライブラリプロジェクトにフラグを立てました。 default.propertiesファイルには次のセットがあります:Android.library=true

  2. 私の他のプロジェクトでは、プロジェクトプロパティを介してライブラリプロジェクトへの参照を追加しました。 default.propertiesファイルには、期待どおりに参照が追加されています。つまり、Android.library.reference.1=K:/Android_test_ws/applicationRegistrar

  3. 参照されているライブラリプロジェクトに対する緑のチェックマークは緑から始まり、赤の十字に変わります。

これは、ライブラリプロジェクトで何かが間違っている/欠落しているに違いないことを意味しますが、私には何がわかりません。今回の私のライブラリプロジェクトは、以前作成したものよりもはるかに単純です。

103
malcooke

OKこれは、ファイルシステムで参照プロジェクト(ライブラリではなく)のdefault.properiesファイルを探していたときに見つけた解決策です。参照プロジェクトはライブラリプロジェクトと同じEclipseワークスペースにありましたが、実際のファイルはファイルシステム内のどこかにありました。つまり、ライブラリプロジェクトの同じ親フォルダーにありませんでした。参照プロジェクトをライブラリプロジェクトと同じ物理フォルダーに配置するとすぐに、すべて正常になりました。

これは、Androidカバーの下に蟻を使用することと関係があるはずです。

編集:プロジェクト名は、ファイルシステム上のフォルダー名と一致する必要があります。プロジェクトプロパティ-> Android->ライブラリリファレンスに表示されているのは、相対ファイルシステムパスです。

159
malcooke

両方のプロジェクトが同じワークスペースに存在することを確認してください。それを行うには、プロジェクトをインポートするときに、「プロジェクトをワークスペースにコピーする」チェックボックスがオンになっていることを確認します。

11
Karthik Dheeraj

ライブラリプロジェクトが現在のワークスペースとは異なるパーティションにある場合、同じ問題が発生します。私は今、同じ問題を抱えています。私のgitソースはC:にあり、ワークスペースをD:に移動するだけで、すべてが崩壊し始めます。

10
user791129

ライブラリパスのパスを正しく取得する最も簡単な方法は、次のスクリーンショットに示すようにEclipseのGUIを使用してライブラリを追加し、Eclipseがproject.propertiesに正しい相対パスを配置できるようにすることです。ライブラリプロジェクトを、ライブラリを使用するメインプロジェクトとは大幅に異なるディレクトリでホストする一般的な設定です。この方法は、「libaryプロジェクト」とそれを使用するプロジェクトが同じEclipse「ワークスペース」にある場合に機能します(それらは同じ親フォルダーに「必要ない」)。 enter image description here

4
Nilesh Pawar

このバグはここで数回参照されます 2719957866468052

多分彼らに投票することで、いつか修正されるでしょう...

3
Laurent.B

ライブラリプロジェクトが「Is Library」としてマークされていることを確認してください-ライブラリプロジェクトを右クリック-プロパティ-Android-「Is Library」チェックボックスをマーク-ライブラリプロジェクトのproject.propertiesで「Android.library = true」という新しいエントリが必要です。次の投稿で説明するように、必要なプロジェクトに追加します(統合された画像を含む投稿-Nilesh Pawarから)。

3

開発者がfacebookまたは他のライブラリプロジェクトを参照する場合、まず最初にEclipse-> project-> cleanプロジェクトからプロジェクトをクリーンアップします。参照画面で赤十字のエラーを許可したい。

2
jayesh jethava

私にとっては、Eclipseを再起動するだけで、追加されたライブラリは正常に機能します。

ライブラリプロジェクトを追加した後、初めて赤いマークが表示されます。 Eclipseのメインプロジェクトとライブラリプロジェクトは同じワークスペースフォルダーにあり、プロジェクトフォルダーの外側にリソースファイルはありません。

そのため、Eclipseを再起動してみてください。ハッピーコーディング...

2
Md Sufi Khan

同じ問題に関するさらに別の観察。

私にとって、2つのプロジェクトは同じ親フォルダーにあり、両方ともワークスペース内でローカルでした。それでも、問題はまだ発生していました。

「project.properties」ファイルを編集し、ライブラリプロジェクトの絶対パス(セパレーターの場合はスラッシュ '/'を使用)を入力しました。保存して閉じました。次に、プロジェクトのプロパティダイアログに移動し、ライブラリ(まだ十字アイコンを表示していましたがabsパスを使用)を削除し、通常どおりに追加し直しました。驚くべきことに、問題は解決され、プロジェクトがコンパイルされて実行されます。

これは本当に奇妙で、ADTのバグに違いありません。 ADTバージョン20.0.2を使用しています

2
CuriousChettai

Eclipseを再起動するだけです。それは私の問題を解決します

1
Manisha Patel

私の回避策は

  1. 新しいワークスペースを作成する
  2. そのワークスペースにライブラリプロジェクトをインポートする
  3. そのワークスペースで目的のプロジェクトをインポートします
  4. プロジェクトとライブラリプロジェクトの両方が同じターゲットになっているAndroid OSバージョン
  5. 私のプロジェクトの参照ライブラリプロジェクト

私の問題を解決しました

1
QAMAR

私のワークスペースを変更しようとしたときに同じ問題が発生したため、これは私のソリューションです:

  1. ライブラリプロジェクトを含むすべてのプロジェクトデータをワークスペースにインポートおよびコピーする
  2. プロジェクトを右クリックして古いプロジェクトの参照を削除します->プロパティ-> Android->ライブラリ、破損したライブラリを選択します(そのため私はそれを呼び出すようになります)そして削除を選択します
  3. 最初にプロジェクトをクリーンアップします(urプロジェクトのプロパティを更新します)
  4. ライブラリプロジェクトの[プロパティ]-> [Android]-> [ライブラリ]に移動し、[適用]、[OK]の順にクリックしない場合はライブラリを確認します。
  5. ライブラリプロジェクトが既にライブラリにチェックされている場合は、最初にチェックを外してからライブラリプロジェクトをクリーンアップし、その後ステップ4を再度実行します。
  6. ライブラリを配置したいプロジェクトに移動し、プロジェクトを右クリックして、(プロパティ)、(Android)、(ライブラリ)、(追加)の順に選択し、ライブラリプロジェクト(あるはずです)を選択して、(適用)をクリックしてから、(OK)
  7. それでもきれいに見えない場合は、もう一度プロジェクトをきれいにしてください。
1
ibrahim saputra

質問を投稿していただきありがとうございます。 FacebookをAndroidアプリケーションと統合する際にまったく同じ問題が発生しました。開発プロジェクトをライブラリプロジェクトのある同じWindowsドライブに移動することで問題を修正しました。ライブラリプロジェクトの場所は、別のドライブにある場合はdefault.propertiesファイルから適切に取得します。

0
Girish K Gupta

ご参考までに、

私のために働いたのは、ワークスペースから「ライブラリ」プロジェクト(実際のプロジェクト)を削除し(ファイルを削除せずに)、ウィザードを使用してそれらを再インポートすることです(既存のAndroidプロジェクトをインポートソースコードから)。

0
JRun

前後の参照パスを見ると、「C:/ workspace/mylib」から取得され、正しい場所にコピーされると「../../mylib」に移動します。

0
Sebastian

受け入れられた答えに従いましたが、「project.properties」ファイルが読み取り可能であることも確認する必要がありました。

ファイルが読み取り専用(ソース管理にチェックイン)の場合、Eclipseはそれを編集しません。ライブラリ参照の追加は成功しますが、[OK]をクリックすると変更は保持されません。

設定ウィンドウを閉じて再度開くと、追加したライブラリが削除される場合、これが解決策である可能性があります。

0
repkap11

Sufi Khanの投稿と同様に、再起動でもこの問題を解決しました。私の場合は、[プロパティ]-> [Android]に初めてアクセスしてライブラリを追加したときに、素敵な緑色のチェックマークが表示された点が異なりました。ダイアログを閉じたとき、Eclipseはまだクラスが見つからないタイプのエラーを表示していました。プロパティをもう一度確認すると、赤いXが表示されました。しかし、カーン氏の解決策(悪いライブラリを削除し、Eclipseを再起動し、ライブラリを再度追加する)は正常に機能しました。

ADTバンドルの0702バージョンを使用しています(「cluster」で始まり、「duck」で韻を踏む)。

0

ライブラリプロジェクトがまだ表示されない場合は、ライブラリプロジェクトプロパティにライブラリフラグを追加してみてください

追加Android.library = true

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-Android.txt:proguard-project.txt

# Project target.
target=Android-17
Android.library=true
0
HimalayanCoder