Intellijがインポート時にシンボルを解決できない


126

この問題は、さまざまなライブラリやさまざまなプロジェクトで断続的に発生します。ライブラリをインポートしようとすると、パッケージは認識されますが、クラス名を解決できません。

インポートステートメントの場合right-click -> Goto -> the package's declaration、サイドペインにすべての逆コンパイルされたクラスが表示されます-必要なものを含みます-インポートステートメントをオートコンプリートしようとすると、必要なクラスが落ちる。

私はすでにキャッシュを無効にしようとしました、動作しません。クラスの競合を見つけることができません-クラスパスに同じパッケージ名を持つ他のjarファイルがありません。このクラスを他のプロジェクトにインポートできます。

スクリーンショットをご覧ください:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

誰か手がかりはありますか?


1
ライブラリがモジュールに追加されたことを確認しますか?プロジェクトライブラリとして追加することはできますが、モジュールのクラスパスには追加できません。
mkobit 2014年

はい-プロジェクト構造では、ライブラリは依存関係として追加されます-実際には、これはIntellijのバグだと思います-異なるライブラリ/プロジェクトでランダムに発生します-プロジェクトを最初から再作成すると通常修正されます
Asaf Ebgi

答えで述べられているすべてが適切な場合。プロジェクトを閉じて、再度インポートします。これは私のためにこの問題を解決しました。
ハリクリシュナン2017年

回答:


249

キャッシュを無効にして、intellijを再起動してみてください。多くの場合、それが役立ちます。

ファイル->キャッシュの無効化/再起動


清掃プロジェクトも支援
GeRyCh 2015

2
@GeRyCh IMHO、Eclipseクリーニング= Intellijキャッシュを無効化
Gangnus

私も働いていませんでした。私のJUnitは「グローバルライブラリ」でした。これを削除してIntelliJ独自のJUnit5ディストリビューションを追加すると、機能します。この依存関係をグローバルライブラリに再度変換すると、エラーが返されます。プロジェクトライブラリに変換しても問題なく機能するため、これはバグだと思います。
マークジェロニム

1
これは私のために働いてくれてありがとう。Intellijを使い始めたばかりで、すでにイライラしています。括弧から飛び出すことはできず、プログラムを再起動して正しくコンパイルする必要があります。これは、まさにJava IDEのWindowsです。
azureai 2017年

3
私はこの問題を数週間以来少なくとも1日に1回は抱えています。すべてを再インデックスするのには永遠にかかるので、本当にストレスがたまります。
スパイロ

38

これには複数の理由が考えられます。私の場合、それは間違ったソースルートの問題でした。無効化キャッシュは他のソリューションと一緒に機能しませんでした。

モジュールのソースルートを確認してください。

  1. プロジェクト構造(Ctrl+ Alt+ Shift+ S)。

  2. モジュール

  3. 問題のあるモジュールを選択します。

  4. ウィンドウ「ソース」の上部にあるタブを変更します。

  5. 不要なソースルートを削除します。1つ保持し、このルートにsrcおよびテストソースルートを追加します。


1
これが一部の人にとってうまくいくかどうかはわかりませんが、そうであると思います。その理由は何でしょうか。次のGradleの同期では、削除したソースディレクトリがすべて再作成されます。
Fran Marzoa

16

IntelliJには依存関係の解決に関する問題があります。以下を試してください:

  1. pom.xmlを右クリック-> Maven->再インポート
  2. もう一度pom.xmlを右クリック-> Maven->ソースを生成してフォルダを更新

12

モジュールの依存関係を確認してください。

  1. プロジェクト構造(Ctrl+ Alt+ Shift+ S)。
  2. モジュール
  3. 問題のあるモジュールを選択します。
  4. ウィンドウ上部の「依存関係」タブを変更します。
  5. 必要なライブラリを確認します(多分、指定したライブラリを[ライブラリ]タブに追加する必要があります)またはモジュールがここにリストされ、適切なスコープ(ほとんどが[コンパイル])があります。

12

プロジェクトコンソールで次のコマンドを実行します。

mvn idea:idea

できました。この問題が何度も発生しました。「キャッシュを無効にして再起動」およびその他のすべてのソリューションを試してみました。そのコマンドを実行することは、私にとって完璧に機能します。私は現在IntelliJ 2019.2を使用していますが、これは以前のバージョンでも発生し、ソリューションも機能しました。


ところで、このmavenプラグインはもうメンテナンスされてい
nabster

11

私は同様の問題に直面しました、マイクのコメントはそれを解決する方向に進むのに役立ちました。
必要なライブラリも私のプロジェクトのモジュールの一部でしたが、スコープの変更が必要でした。モジュールの依存関係で、スコープを「Test」ではなく「Compile」に変更しましたが、現在は問題なく機能しています。


テストではなくコンパイルが機能します。なぜなのかご存知ですか?
2016

1
これどうやってやるの?マイクって誰?
cellepo

8

ファイル->キャッシュの無効化/再起動またはプロジェクトの構築が機能しませんでした。

私のGradleプロジェクトで機能したのは、IntelliJ v2017の右上隅にあるGradleタブから、以下に示す黄色のマークが付いたボタンを使用して「すべてのGradleプロジェクトを更新する」ことでした。

ここに画像の説明を入力してください


この答えは、私のMavenプロジェクトにも役立ちました。IntelliJ 2018.3.4の場合、アイコンは変わりません(青い回転矢印)。ただし、オプションの正確なタイトルは「すべてのMavenプロジェクトの再インポート」と呼ばれます。1時間の調査の後、著者にとって非常に大きな問題であり、問​​題の正しい解決策を見つけるのはとても安心です
TomateFraiche

4

@ jossef-harush@ matt-leidholmからの次の回答が別のリンクから有用であることがわかりました

  • IntelliJエディターで、赤いキーワードIntegerたとえば)をクリックしてALT+ を押すENTER(または電球アイコンをクリックする)
  • Setup JDK意図メニューから選択

IntelliJインテンションメニュー

  • クリック Configure

プロジェクトSDK選択ダイアログ

  • 私の場合、JDKパスは正しくありませんでした(の/opt/jdk1.7.0_51代わりにポイントされました/opt/jdk1.7.0_65

壊れたConfigure SDKダイアログ

  • をクリックし...て、正しいJDKパスを参照します

SDKの構成ダイアログを修正

  • キャッシュをクリアしましょう

IntelliJファイルメニュー



3

pom.xmlファイルを右クリックし、Mavenに移動してReimportをクリックします。同様の問題があり、これでうまくいきました。


1

キャッシュを無効にして再起動してみましたが、.ideaディレクトリを完全に消去してから、新しいプロジェクトを最初から作成するのが唯一の方法でした。


これは実際には解決策ではありません。以前は使っていましたが、私のケースには影響しません。
Tung

1

また、新しいJavaプロジェクトをビルドしようとすると、このエラーが何度も発生しました。

以下は、私がこの愚かな問題をどのようにして得たかのステップです。

  1. 空のプロジェクトを作成し、新しいディレクトリを作成しますsrc/main/java
  2. ソースパッケージを作成しますnet.gongmingqm10.sketch
  3. 使用するとgradle wrappergradle ideaプロジェクトのためのGradleのものを構築します。
  4. build.gradleファイルにいくつかの依存関係を追加しgradle build、プロジェクトを再インポートします。
  5. 既存のパッケージを作成User.javaSchool.javanet.gongmingqm10.sketch
  6. User.javaでインポートスクールを使用しようとしたときにエラーが発生しました。
  7. Intellijは、インポート時にシンボルを解決できないと不平を言い続けます。

解決:

最初にプロジェクトをビルドし、main / javaをソースルートとしてマークします。新しいディレクトリを作成する同じ名前でをnet.gongmingqm10.sketch。すべてのファイルを古い問題のあるパッケージから新しいパッケージに移動します。

根本的な原因:

ソースコードのディレクトリツリー

木からわかるように。という名前のディレクトリを取得しましたnet.gongmingqm10.sketch。しかし、本当に必要なのは3つのレベルのディレクトリです。net-> gongmingqm10-> sketch

しかし、Intellijでプロジェクトのビルドを完了する前に、次の名前の新しいディレクトリを作成します。 net.gongmingqm19.sketchnet.gongmingqm10.sketch。これにより、という名前の実際のディレクトリが得られます。

インポートしようとしたとき。明らかに、どのようにしてintellijは、変わったディレクトリの下にという名前のファイルをインポートできますかa.b.c


おかげで、これは私の問題でした。編集:詳細... 1つのmavenモジュールから別のモジュールにコピーし、そのコピーでディレクトリをフラット化しました。Intellijはすべてがソートされているように見えましたが、私のフォルダーは実際にはa> b> cではなく「abc」でした。
Qbert

1

@Anton Dozortsev私は同様の行動に夢中になりました。結局IDEを何度も再インストールしてしまい、IDEAアプリ、すべてのキャッシュ、設定などを削除した後で問題が解決しました。

その間、あらゆる種類の手順(再起動、無効化、ファイルの削除.ideaなど*.iml)を試しました。

結局のところ、問題はIntelliJのidea.max.intellisense.filesize設定が原因でした。依存関係のサイズよりも小さい100KBに設定したため、スクリーンショットのように、IntelliJは不明として表示しました。

修正:

  1. [ヘルプ]-> [カスタムプロパティの編集]をクリックします

  2. プロパティをより大きい値に設定します。デフォルトは2500KBです idea.max.intellisense.filesize=2500


1

srcフォルダーがjavaではなくルートソースとしてマークされていることに気づくまで同じ問題がありました。ソースルートになるJava(src / main / java)のみに変更すると、問題が解決しました ここに画像の説明を入力してください


1

[ファイル]-> [同期]を試してください。次に、無効にする前にIntelliJを閉じて再度開きます。

再起動したら。無効にしたはずですが、再起動後に同期によってすべてがクリアされました。


0

単純な再起動は私のために働いた。

最初に再起動を試してから、キャッシュを無効にすることをお勧めします。

PS:システムキャッシュを消去すると、ローカル履歴がクリアされます。


0

インポートしたMavenプロジェクトにも同様の問題がありました。1つのモジュールでは、他のモジュールの一部のインポート時にシンボルを解決できません(はい、そのモジュールの一部は解決できます)。

「Mavenホームディレクトリ」を新しいバージョンに変更すると問題が解決しました。

更新:1時間有効、壊れた状態に戻ります...


0

ソースの原因を見つけました!

私の場合、いくつかのJavaソースファイルを含むjarファイルを追加しますが、Javaソースは悪いと思います。IntellijIdea依存関係ライブラリでは、ソースが自動的に追加されるため、エディターでのインポートは不適切です。「プロジェクト構造 "->"ライブラリ "、それは私のために働きます。


0

このjarライブラリに誤ってソースを追加したため、.ideaフォルダーのパッケージファイルを編集しました。b/ m画像ライブラリエラーでマークされているソース行を削除しても、androidはそれを解決できませんでした。

次に、gradleとbamの問題を解決して再構築します。


0

私は同じ問題を抱えていましたが、その理由はプロジェクトのソースのマーキングが間違っていたためです。

ルートコンテンツを手動で作成しましたsrc/main/testが、フォルダがではSourcesなくとしてマークされていることに気付きませんでしたTests。私のテストクラスは、すべてのテストライブラリ(持っていると仮定した理由であることはのでJUnitMockitoコンパイルの範囲ではなく、テストで、など)。

src/main/testテストとしてマークしてモジュールを再構築するとすぐに、すべてのエラーがなくなりました。


0

Intellijを使用してNiFiで作業しようとしているときに最近これがありました。NiFiにはMaven 3.1.0以上が必要であり、チェックアウトしたバージョン(私のデフォルトと思います)が3.0.5であるという問題が判明しました。プロジェクトのMavenバージョンを更新すると修正されたので、場合によってはMavenバージョンの不整合が見られることがあります...これはかなり珍しいことですが、これまでのスレッドで取得した場合、おそらく珍しい問題:)


0

同じ問題。これらの方法が機能しない場合。ローカルのmavenリポジトリーからlibを削除して、pomに再インポートすることができます。

mvnリポジトリ

最後に、私にとっては結構です。

事業


0

file-> Project Structure-> Modules、問題のあるモジュールを見つけてクリックDependenciesし、右側のタブを選択します。緑のプラス記号をクリックし、問題の原因となっているjarまたはライブラリを追加してみます。それは私にとってはうまくいきます。


0

長い検索の結果、Mavenプロジェクトのマシンで依存関係が何らかの形で破損していることがわかりました。奇妙なことに、コンパイルされたJavaコードでは依存関係が正しく機能していました。ただし、Maven依存関係キャッシュをクリーンアップして再構築したところ、問題は解消され、IntelliJがパッケージを認識しました。これを実行するには、次のコマンドを実行します。

mvn dependency:purge-local-repository

興味深く、私の問題の原因はIntelliJではなく、maven自体でした。


0

上記で試したことは何もうまくいきませんでした(すべての提案を試みたわけではありません)。最後にトリックを行ったのは、クラスの名前を変更することでした。クラス名とファイル名に2を追加しただけです。次に、すべての参照を手動で解決しました。(認識されなかったため、リファクタリングによって参照が自動的に変更されることはありませんでした。)

「2バージョン」がすべての場所で問題なく解決されると、クラスとファイルから2をリファクタリングして削除することができ、すべてが本来の状態でした。


0

私の場合、解決策は、プロジェクトをmavenプロジェクトとして追加することでした。また、mavenプロジェクトとしてインポートしたという事実に加えて:P

pom.xmlに移動->右クリック-> Mavenプロジェクトとして追加


0

Intelli iDEAはこれらの愚かなトラブルを@回引き起こします。単純なgoto pom.xml、右クリックして、-> Maven-> Reimportを実行します。

これで問題が解決するはずです。


0

2020.1.4 Ultimateエディションの場合、私は次のことを行わなければなりませんでした

View -> Maven -> Generate Sources and Update Folders For all Projects

私にとっての問題は、ライブラリがmvn -U clean install端末から読み込まれていないことでした 。

ここに画像の説明を入力してください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.