Eclipseでエラーが発生しました。このエラーメッセージの意味:
タイプiglu.ir.TermVectorは解決できません。必要な.classファイルから間接的に参照されている
Eclipseでエラーが発生しました。このエラーメッセージの意味:
タイプiglu.ir.TermVectorは解決できません。必要な.classファイルから間接的に参照されている
回答:
つまり、「使用するクラスには、クラスパス上にない別のクラスが必要です。」(Harry Joyが示唆するように)必要なjarをクラスパスに追加することを確認する必要があります。
これは、実際のエラーであるのと同様に、Eclipseが混乱している問題である可能性があります。エラーを無視して、endpointInterfaceがエラーを報告するWebサービスを実行しましたが、実行するたびにダイアログを処理する必要があることを除いて、問題なく実行されました。何もわからない、もう1つの不透明なエラー。
それは時々私に起こります、私は常に「mvn eclipse:clean」コマンドでそれを修正して古いプロパティをクリーンアップしてから、mvn eclipse:eclipse -Dwtpversion = 2.0を実行します(もちろんWebプロジェクトの場合)。保存された古いプロパティがいくつかあるため、Eclipseが混乱することがあります。
mvn eclipse:clean
および/またはmvn eclipse:eclipse
はそれを機能させる魔法のトリックのようです。
これは既知の問題(バグ67414)であり、3.0で解決されたようです。誰かが3.4でも発生しているとコメントしています。
当面の回避策は、JREシステムライブラリをプロジェクトから削除し、再度追加することです。
Here are the steps:
ビルドエラーのあるプロジェクトのプロパティに移動します(右クリック>プロパティ)
[ビルドパス]セクションの[ライブラリ]タブを表示します
リストから「JREシステムライブラリ」を見つけます(これがない場合、このエラーメッセージはEclipseのバグではなく、プロジェクトの構成が間違っています)。
「JREシステムライブラリ」を削除する
[ライブラリを追加...]をクリックし、[JREシステムライブラリ]を選択して、プロジェクトに適切なJREを追加します(例: 'Workspace default JRE')
ライブラリの選択で[完了]をクリックし、プロジェクトプロパティで[OK]をクリックして、プロジェクトの再ビルドを待ちます
うまくいけば、エラーは解決されます...
eclipseが別のバージョンのjdkで動作していたため、この例外が発生しました。正しい、クリーン、ビルドに変更して動作しました!
私はEclipse 4.4.2でこの問題の興味深い事例がありました。私のプロジェクト(P1)は、同じ名前で引数の型が異なる2つのメソッドを持つ外部クラス(プロジェクトP2)を参照しました。
public static void setItem(Integer id) …
public static void setItem(Item item) …
タイプItem
は3番目のプロジェクトP3に含まれていましたが、ここには表示したくありませんでした。P1は最初のメソッドのみを呼び出しました。
ExternalClass.setItem(Integer.valueOf(12345));
使用される第二の方法は、だからItem
クラスを使用していなかった、そしてP3はコンパイル時クラスパスになかったことは事実である-それが使用されていない場合は、なぜそれする必要があります。
それでもEclipseは私に言った
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
コマンドラインからコンパイルしても、このような問題は発生しませんでした。2番目のメソッドの名前(ここでは未使用)を変更すると、Eclipseでも問題が解決しました。
コードで何も変更せずにsvn設定をいくつか変更しただけでエラーが発生しました。プロジェクトをクリーニングするだけでエラーが修正されました。
私の場合、私はプロジェクトを作成し、その作られたminSdkVersion=9
とtargetSdkVersion=17
。自動生成したものを使用しましたlibs/android-support-v4.jar
。私はまたの使用をしなければならなかったActionBarActivity
使用しますandroid-support-v7-appcomapt.jar
。そのため、android-support-v7-appcompat.jar
ファイルをandroid-sdk/extras/andrid/support/v7/appcompat/libs
フォルダーからコピーして、プロジェクトlibs
フォルダーに貼り付けました。そして、これは上記のエラーを引き起こしました。つまり、基本的には、プロジェクトフォルダにもandroid-support-v4.jar
ファイルを置く必要がありました。私の知る限りでは、ファイルはファイルに依存していました。したがって、私のプロジェクトではなく、ファイルを自動的に作成する必要がありました。android-sdk/extras/andrid/support/v7/appcompat/libs
libs
v7.jar
v4.jar
v4.jar
v4.jar
すばやく簡単にこの方法で修正しました(Windows XP Home EditionではADTバージョン:v21.0.0-531062を使用しています)
それは機能しましたが、問題は数日ごとに再発します。私は上記と同じことを行い、解決して成長させます。
すでに提案されているクラスファイルの欠落の原因に加えて、このエラーは重複するクラスファイルを示している可能性があります。ビルドパスのクラスファイルがビルドパスに複数の定義を持つ別のクラスを使用している場合、Eclipseはこのエラーを報告します。
あなたは私たちにほとんど詳細を与えないので、おそらくあなたがしたことは、信じられないほど簡単な間違いですが、
Build Path > Configure Build Path > Projects
そこから追加のプロジェクトフォルダを追加する代わりに、
Build Path > Configure Build Path > Libraries
代わりにそこからプロジェクトフォルダを追加しました。
これは、コードがすべて正しい場合に間違いなくctrl+space
当てはまりますが、com.your.additionalprojectを参照するインポートステートメントではなく、ショートカットを使用してインポートを自動的に再編成すると、参照はすべてbin.com.your.additionalprojectを指します。
ビンに注意してください。つまり、他のプロジェクトフォルダー構造をライブラリーとして扱うことにより、クラスを間接的に参照しているため、IDEは、参照しているバイナリクラスを正確に見つける作業をすべて実行しています。
これを修正するには、ライブラリからフォルダを削除し、代わりに[プロジェクト]タブに追加して、インポートを再編成します。プロジェクトは正常に機能するはずです。
私の場合は、pom.xml
ファイルに新しい依存関係を追加した結果です。
新しい依存関係は、古いバージョンのライブラリ(2.5)に依存していました。同じライブラリがの別のライブラリにpom.xml
必要でしたが、バージョン3.0が必要でした。
何らかの理由で、Mavenがこれらの競合に遭遇すると、最新バージョンが省略されます。Eclipseで表示しpom.xml
ているときに、下部にある「依存関係の階層」タブを選択して、依存関係がどのように解決されるかを確認できます。ここで、問題のライブラリ(およびクラス)がこの理由で省略されているかどうかを確認できます。
私の場合、新しいバージョンをロックするのと同じくらい簡単でした。エントリを右クリックすると、これを行うことができます-コンテキストメニューにエントリをロックするオプションがあります。
ビルドパスのJREがJDKを指すようにします。それでうまくいきました。