web-dev-qa-db-ja.com

依存関係の欠落または競合がないかモジュールのクラスパスを確認してください

JavaとKotlinを使用して正常に実行およびビルドできるプロジェクトがあります。ただし、IntelliJでプロジェクトを開くと、多くのプロジェクトファイルで同じエラーが発生します。

エラーは「クラス 'Java.lang.String'にアクセスできません。依存関係の欠落または競合がないかモジュールのクラスパスを確認してください」

添付の画像でエラーを確認してください: enter image description here

このエラーの原因は何ですか?どうすれば修正できますか?

26
MadLax

プロジェクトにJDKが設定されている場合、おそらくIDE(Intellij)にはJDKが設定されていませんが、ビルドされたアプリケーションは必要なJVMで問題なく実行できます。

2
dexter2305

私たちのプロジェクトでは、プロダクションソースとテストソースの両方に同じディレクトリを追加したため、この問題が発生しました。

sourceSets {
  main.Java.srcDirs += 'src/main/kotlin/'
  main.Java.srcDirs += 'build/generated/source/protos/main/Java'
  test.Java.srcDirs += 'src/test/kotlin/'
  test.Java.srcDirs += 'build/generated/source/protos/main/Java'
}

テストソースから重複を削除すると、問題が修正されました。

sourceSets {
  main.Java.srcDirs += 'src/main/kotlin/'
  main.Java.srcDirs += 'build/generated/source/protos/main/Java'
  test.Java.srcDirs += 'src/test/kotlin/'
}
0
Jesse Wilson