🐛

AndroidStudioのデバッガで変数が 'XXX' was optimised outと最適化されて見られない問題への対処

2023/05/13に公開

前提となる環境

  • Android Studio Electric Eel | 2022.1.1 Patch 1
  • Kotlin 1.8.10

ブレークポイントを打って実行した際に、変数が 'XXX' was optimised outと表示されて値が分からない場合がある。
恐らくKotlin 1.8.0からこの挙動に変わったように思える。

対処法

コンパイラオプションに -Xdebugを付与する。

ただし、これはリークを引き起こしうるため本番で利用するべきではないとのこと。
そのため、具体的にはモジュールのbuild.gradleのbuildTypesセクションのdebug配下に以下のように記載することで対応した。

    buildTypes {
        debug {
               :
	      中略
	       :
            kotlinOptions {
                freeCompilerArgs += '-Xdebug'
            }
        }

参考

https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature

Discussion