Kotlin移行7
- 2018.10.13
- Android
目的
- Javaで書かれたプロジェクトを少しずつKotlinで書き直す
- TestもKotlin化
- 備忘録的にちょこちょこ完了まで続ける
条件
- AndroidStudio3.2.1
- Java1.8.0_152
- Kotlin 1.2.70
- gradle 4.10.2
今回の作業予定内容
- Parameter specified as non-null is null対処
- HogeFragment.ktの
onCreateView
で起きていた - MainActivity.ktの
onCreate
内のsuper.onCreateで起きていた
- HogeFragment.ktの
手順と具体的な作業
・ 1の対処
Before(HogeFragment.kt)
1 2 |
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,savedInstanceState: Bundle?): View { |
After(HogeFragment.kt)
1 2 |
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View { |
2の対処
Before(HogeApplication.kt)
1 2 3 4 5 |
registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(activity: Activity, bundle: Bundle) { ... override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) { |
After(HogeApplication.kt)
1 2 3 4 5 |
registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(activity: Activity, bundle: Bundle?) { ... override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle?) { |
まとめ
参考リンク先にあるように、エラーが起きているとされる箇所はMainActivity.ktなのに、該当箇所はしっかりnullを許可していたのでどこを直すべきか迷子になったが、Application.ActivityLifecycleCallbacksのinterface実装の引数がnull許可になっていなかったことが原因でドンピシャだった
参考
https://qiita.com/eimei4coding/items/204ad0571ad2700ebd14
コメントを書く