自作AndroidアプリをJavaからKotlinに書き換えた時にハマったこと

ついに自作アプリTwitMorseもJavaからKotlinに移行しました。入院中、安静を申し付けられていて暇だったのもあり・・・

とりあえず、Code -> Convert Java File to Kotlin Code

僕の場合Activity,Fragment,Adapter,,,といった感じでパッケージ構成していたので、パッケージ単位でConvert Java File to Kotlin Codeを実行。その後、エラーを潰す作業を行っていきました。


ハマりどころその1 Error: ‘onCreateView’ overrides nothing

Fragmentでかならず呼ぶonCreateViewでコンパイルエラー

解消方法はこちら

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View?

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?

LayoutInflaterがnullにならないようにする。

参考:Multiple errors in my fragments after updating the support library to 27.0.0 – stack over flow

ハマりどころその2 Parameter specified as non-null is null
java.lang.IllegalArgumentException: Parameter specified as non-null is null:
method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,
parameter savedInstanceState

null許可しないのにnullが来ると怒られる

    public override fun onCreate(savedInstanceState: Bundle) {

    public override fun onCreate(savedInstanceState: Bundle?) {

nullが来る可能性用に?を追加。

参考:JavaからKotlinへ移行中にParameter specified as non-null is null

とりあえずJavaからKotlin移行は完成

他にもたくさんいろいろやらないと行けないことがありましたが、とりあえずKotlin化は完成。

Kotlinコードをこれからは実装していきます。


コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください