JavaからKotlinへ移行してAndroidアプリ書いている、私のような人にはタイトルのようなエラー結構出ると思うんですけど。
下記のようなシンプルなコードがあったとします。
private var textView: TextView? = null
//アプリが開始されると最初に処理されるメソッド
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.content_input_voice)
textView = findViewById<View>(R.id.textView) as TextView
textView.setText(getText(R.string.no_task_error)) //ここでエラー
}
これは、結論から言いますと、次の2パターンで治ります。
//パターン1 textViewはnull許可だってわかってるよ?とする
textView?.setText(getText(R.string.no_task_error))
//パターン2 textViewをvalにする
val textView:TextView = findViewById<View>(R.id.textView) as TextView
textView.setText(getText(R.string.no_task_error))
mutable は可変という意味です。
varという宣言していたり、Null許可している変数にアクセスしようとすると出ます。