【问题标题】:Android kotlin onCreate(savedInstanceState: Bundle?) cause IllegalArgumentExceptionAndroid kotlin onCreate(savedInstanceState: Bundle?) 导致 IllegalArgumentException
【发布时间】:2017-10-23 02:01:34
【问题描述】:

第一个 Activity 仍然没有启动 Bundle?

class FirstActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

}

原因:java.lang.IllegalArgumentException:指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数包

override fun onCreate(savedInstanceState: Bundle)时应该会出现这个错误

但是,我修复了override fun onCreate(savedInstanceState: Bundle?)

【问题讨论】:

  • 你能告诉我们你的异常的相关堆栈跟踪吗?
  • 顺便说一下,参数的名字是bundle,但是你叫它savedInstanceState
  • 我投了反对票,因为我不明白 OP 的意图是什么,她/他在问题上已经给出了答案

标签: android kotlin nullable illegalargumentexception


【解决方案1】:

这是发生在 Application 类的错误,而不是 Activity。

需要将 Bundle 更改为“Bundle”? Activity 和 Application 类。

  override fun onActivityCreated(activity: Activity, bundle: Bundle?) {

    }

  override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle?) {}

【讨论】:

    【解决方案2】:

    当我将 .java 自动交换为 .kt 时,我遇到了同样的错误。但真正的错误点不在 Activity 中。就我而言,错误的地方是 ActivityLifecycleCallbacks,其中一些参数缺少“?”在交换中。

    错误:

    override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle) 
    override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle)
    

    正确:

    override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) 
    override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle?)
    

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多