IllegalArgumentException: savedInstanceState especificado como no nulo es nulo

Me MainActivity un error extraño cuando comienzo mi MainActivity :

 06-16 16:01:05.193 2083-2083/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.example.github, PID: 2083 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.example.github/com.android.example.github.ui.MainActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at com.android.example.github.injection.AppInjector$init$1.onActivityCreated(AppInjector.kt) at android.app.Application.dispatchActivityCreated(Application.java:197) at android.app.Activity.onCreate(Activity.java:961) at android.support.v4.app.BaseFragmentActivityGingerbread.onCreate(BaseFragmentActivityGingerbread.java:54) at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:319) at com.android.example.github.ui.MainActivity.onCreate(MainActivity.kt:20) at android.app.Activity.performCreate(Activity.java:6682) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6121) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 

Esta es mi class de actividad principal:

 class MainActivity : LifecycleActivity(), HasSupportFragmentInjector { lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment> @Inject set lateinit var navigationController: NavigationController override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) if (savedInstanceState == null) { navigationController.navigateToSearch() } } override fun supportFragmentInjector(): AndroidInjector<Fragment> { return dispatchingAndroidInjector } } 

El error indica que el parámetro savedInstanceState es nulo, cuando se especifica como no nulo; pero es anulable ( savedInstanceState: Bundle? ) y el método onCreate() está marcado como @Nullable en la fuente.

No he encontrado este error en ninguno de mis otros proyectos de Kotlin. Estoy usando la versión 1.1.2-5 de Kotlin; y tuvo el mismo error con 1.1.2-3.

Parece que el problema no está en el método onCreate . Intenta mirar com.android.example.github.injection.AppInjector$init$1.onActivityCreated(AppInjector.kt) . No puedo decir si es una class generada, pero debería darte una idea de qué hacer a continuación.

Tenía exactamente el mismo problema, tienes que hacer types que aceptan nulos aquí:

 override fun onCreatePreferences(bundle: Bundle?, s: String?) {} 

Como señaló @mcassiano, parece que el problema no está en el método onCreate , sino en onActivityCreated . Dos pensamientos:

  • Debido al hecho de que las bibliotecas y tales están en transición, por ahora puede que tenga que anular manualmente onActivityCreated en su fragment y marcar explícitamente el package como nulo: (savedInstanceState: Bundle?) . No debería tener que hacerlo, pero la configuration manual de la capacidad de anulación puede ayudar.
  • Observé que el locking llega hasta BaseFragmentActivityGingerbread. ¿Esto es resultado de usar LifecycleActivity? ¿O tienes otras dependencies más antiguas y desactualizadas en tu proyecto?
  • ¿Cómo llamo a un método en Kotlin con un límite superior diferente?
  • Operador de asterisco de Kotlin antes del nombre de la variable o Operador de extensión en Kotlin
  • Vista de búsqueda abierta de Android programáticamente
  • La sala no puede elegir un constructor ya que varios constructores son un error adecuado
  • Burlas de respuestas API usando Mockito
  • Burlarse de las interfaces con Kotlin y Mockito
  • Android Spinner getDropDownView repite elementos después de la selección
  • ¿Por qué ReversedLinesFileReader es tan lento?
  • Problemas para get API de Meetup Token de acceso con modificación - Android
  • Configurando Gradle con Kotlin
  • El layout SwitchPreference no es correcto hasta que se toca