BattleProgrammerShibata

ある日は誰かと戦い、ある日は何かと戦い、そしてある日は自分と戦うのだろう、そういう生き物。

Kotlin で Android-ObservableScrollView を利用したら IllegalArgumentException に遭遇した話 #Android #Kotlin

Android-ObservableScrollView という、パララックスなスクロール UI を実現するためのライブラリがあります。

github.com

このライブラリを利用して、ObservableScrollViewCallbacks を継承した Activity(Kotlin で定義)を作ると、画面をタップしたときに以下のようなエラーに遭遇することがありました。

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter scrollState

パラメータscrollState は Null が許可されていないにも関わらず Null が指定されてるぞゴルァというエラーです。
このエラーで検索してみると、Kotlin と Java が混ざったときの Null の扱いに気をつけてコードを書かないといけないと解説する記事が見つかると思います。

今回のケースでは定義が義務づけられる onUpOrCancelMotionEvent のメソッドに指定したパラメータの型が悪いことが分かったので、パラメータ scrollState を Null 許可な型にしてあげました。

override fun onUpOrCancelMotionEvent(scrollState: ScrollState?): Unit {
}

これで OK!