LoginSignup
0
0

More than 1 year has passed since last update.

gradleで〜must be locked before it can be used to compute a classpath!と言われた時にチラ見する記事

Last updated at Posted at 2022-08-20

対象読者

graldeで以下のようなエラー(XXXXXXXXの部分は16進数)に遭遇し、理由はともかく手っ取り早く解決(する可能性のある体験談)を求めている人。

java.lang.IllegalArgumentException: org.gradle.api.internal.initialization.DefaultClassLoaderScope@XXXXXXXX must be locked before it can be used to compute a classpath!

環境

  • IntelliJ IDEA 2022.2.1 (Community Edition)
  • gradle 7.4.2
  • build.gradle.kts
  • Koltin 1.6.21

対応

調べると出てくるのは、gradle.properties内のconfigureondemandをFalseにする方法だが、これで解決しなかった人は以下の観点で検討してはどうだろう。

build.gradle.ktsでビルドするクラスをbuild.gradle.kts自身でインポートしたり依存対象にしたりしていないだろうか。深く検証していないが、コンパイルして生成する予定のクラスをdependenciesに含めようとすると、たとえそれがbuild.gradle.ktsでビルドするファイルと別のソースから提供されるものであっても表題のエラーが出るっぽい。

build.gradle.ktsでの生成の対象から外したらエラーが表示されなくなった(※個人の体験です)。

浅い考察

冷静に考えれば自己へのループ構造になるので、通常はこんなことにはならないはずなのだが、gradleのプラグインの作成と使用をサブプロジェクトを用いて同一プロジェクト内で済ませようとしたらハマってしまった。

gradleの動作に詳しい人には当然なのかもしれないが、何がlockedなのかわからず何時間か費やしたので、(そんなにはいないとは思うが)犠牲者が少しでも減ればと書いた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0