次のlintエラーを生成する次のコードがあります。 Androidスタジオ3.0-alpha8のKotlin apply()拡張lintメッセージ
fun newInstance(message: String?): DialogFragment {
return DialogFragment().apply {
arguments = Bundle().apply {
putString("arg", message)
}
}
}
メッセージは、下位APIにクラッシュするAPI 21が提供されてBaseBundle
クラスにapply()
ファンクションポイント内部そのthis
基準を指摘しています。 Bundle#putString(key, value)は確実に下位バージョンで利用できますが、Android Studio 3.0-alpha8にエラーがあります。
私はこのよう逆コンパイルコードを見ることができるように、非常に奇妙な問題:
Bundle
タイプではないBaseBundle
を参照してください。
最初にリントエラーが発生するのはなぜですか?
? – lelloman
@lelloman私はAndroid Studio "Show Kotlin Bytecode"に頼っていました。タブには、Android Studioペインの右側に表示される「デコンパイル」ボタンがあります。別の方法は "classyshark-bytecode-viewer"を使うことですが、私はそれを試していません。 –
クールなthx!あなたのコードを試したところ、TestKtクラスをViewにすると警告が消えます。\ – lelloman