[unity]Cannot read BuildLayout header, BuildLayout has not open for a file.

Addressables をビルドしていたら、(いつものように)いつのまにかこんなエラーが。

いつのまにか、なので発生しない人も多いと思います。
数万アセットを Addressables 化し、Addressables Analyzer も使ってあれこれしてた自分が悪いんでしょう……。

また、これはエラーですが、出るからといってビルドに失敗するわけでもありません。
結果私は無視してるんですが、一応対処法を備忘録的に残しておきます。

犯人は Addressables Report(らしい)

Unity2022 ではビルド時にこのレポートを表示する? と聞かれるので使い始めている人も多いんじゃないでしょうか。
重複アセットを検出してくれるので、アセットの整理に重宝します。

こいつを試しにオフにしてみます。Preference > Addressables > Debug Report のチェックを外すことで可能です。

その状態でビルドしたところ、エラーは出力されなくなりました。

もう少し Addressables Report について調べる

このレポート、ビルドする度にどんどんログがたまっていくんですよね。
こいつがなんらかのタイミングで読み込めないものがある、そういう問題かと考えました。

Library/com.unity.addressables を消す

Addressables が吐き出すファイルはこちらにキャッシュされます。
Addressables Report が参照する BuildReports という情報もこちらにあるようです。

じゃあ、このキャッシュ全部消してみるか(乱暴)。というわけで、プロジェクトを閉じ > キャッシュファイルを(エクスプローラーで)全部消し > プロジェクト再オープン > ビルド してみます。

するとエラーはなくなりましたが、Addressables Report の方が……。

どうやら Library/com.unity.addressables 以外に情報を持っているようです……。

全てのキャッシュを消す

さらに力任せ、Library/ Logs/ obj/ Temp/ という unity editor によって作られたキャッシュを全て消します。
数万ファイルのアセットがあるプロジェクト、再起動に物凄く時間がかかるけどキニシナイ。

消すだけで1時間30分待ち

そして数時間後……

Addressables Report はスッキリしましたが、結局エラーが……。

ここまで来るとおそらく Addressables いちから作り直すしかなさそうですが、今回のアセット数は膨大すぎて、手間がかかるのでここまでに。

海外の情報も見たのですが、質問が放置されてたり、別の理由だったりで該当するものが見つかりませんでした。

結論

ニッチな状況だとは思いますが、うざかったらレポートをオフにしよう! 害は今のところないよ!
と、いうことで。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA