Android Studioのプロジェクトレベルのbuild.gradleファイルから、Kotlinのバージョンを上げたときに(下の例では1.3.21にバージョンアップ)
これまで何の問題も発生していなかった、Fragment内で自動生成されるライフサイクルメソッドの1つである「onCreateView」メソッドに突如赤線が入り、
'onCreateView' overrides nothing
と言われてビルドエラーになってしまう場合があります。
自動生成されているコードやのに何でやね~ん!?って感じですよね。
この対処法です。
Kotlinのバージョンアップによってライフサイクルメソッドの引数に細か~い変更があったから
このエラー発生の原因は、
- Kotlinのバージョンアップによって、onCreateViewメソッドの引数に細か~い変更が生じたために
- すでに書いてあるonCreateViewメソッドとシグネチャ(メソッド名と引数名)が一致せず、
- 何も継承しない状態になってしまった
ということのようです。
Kotlinのバージョンアップ前
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
Kotlinのバージョンアップ後
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
これ、違いわかります??
実は、第一引数のクラスの型である「LayoutInflater」の後ろにある「?」が要らなくなったんですよ~!!
ですよね??(つまり、null許容じゃなくなったってことですね)
だから、この「?」取ってあげたら
ほら、エラー消えたでしょ。
というわけでございます。
(下の動画でくわしく解説していますので、よろしければご覧ください)