AndroidTVとか、キー操作でフォーカスを移動するアプリを作る際に使いがちな
ViewTreeObserver.OnGlobalFocusChangeListener
唯一のPublic methidはdeveloper.android.comのreferenceによると以下のように定義されています
abstract fun onGlobalFocusChanged(oldFocus: View!, newFocus: View!): Unit
だけど実際に使ってみるとoldFocusにnullが入ってきたりします
https://developer.android.com/reference/kotlin/android/view/ViewTreeObserver.OnGlobalFocusChangeListener.html
には以下のような記載が
When the view tree transitions from touch mode to non-touch mode, oldFocus is null.
kotlinではAndroid StudioがView!で補完し、うっかりしていると補完されるままにNotNullとして実装してしまいCrashへといざなわれます
英語に堪能な仲間の助力を得てドキュメントのバグを報告したいと思います
追記
実際のところ、
When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
について簡単にエミュレータで確認したところ
Activtyの初期フォーカスが入るところではoldFocusがnullになる、という比較的わかりやすい挙動の他
API17では常にnullが渡されるように見えます