[Android] ‘onCreateView’ overrides nothingの対処法(自動生成されたメソッドがKotlinのバージョンアップでエラーになってしまう)

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許容じゃなくなったってことですね)

 

だから、この「?」取ってあげたら

 

ほら、エラー消えたでしょ。

 

というわけでございます。

(下の動画でくわしく解説していますので、よろしければご覧ください)

こんな記事も読まれています

みんプロにかける想い

  1. プログラミングを通じて「やわらかい世の中」を作りたい(ぼくがプログラミング講座をやっている本当の理由②)

  2. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  3. プログラミングは手段の1つに過ぎない(目的は自分のアイデアを形にすること)

  4. ぼくが別に言う必要のない挫折の黒歴史をあえてさらけ出している理由(自分の中にある「ブロック」を外すきっかけにしてほしい)

  5. こんな無駄な苦労をするのはぼくで最後にしたい(ぼくがプログラミング講座をはじめたわけ)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP