JavaとKotlinを使用して正常に実行およびビルドできるプロジェクトがあります。ただし、IntelliJでプロジェクトを開くと、多くのプロジェクトファイルで同じエラーが発生します。
エラーは「クラス 'Java.lang.String'にアクセスできません。依存関係の欠落または競合がないかモジュールのクラスパスを確認してください」
このエラーの原因は何ですか?どうすれば修正できますか?
プロジェクトにJDKが設定されている場合、おそらくIDE(Intellij)にはJDKが設定されていませんが、ビルドされたアプリケーションは必要なJVMで問題なく実行できます。
私たちのプロジェクトでは、プロダクションソースとテストソースの両方に同じディレクトリを追加したため、この問題が発生しました。
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/'
}