title: Jetpack navigation component throws an IllegalStateException when loading a start destination with nullable argument
body: <p>I added a nullable argument to my start destination:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;navigation xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:id="@+id/nav_graph"
          app:startDestination="@id/startDest"&gt;
  
      &lt;fragment android:id="@+id/startDest"
            android:name="com.myapp.MyStartFragment"
            android:label="Start"
            tools:layout="@layout/fragment_start"&gt;
          &lt;argument
              android:name="dataObject"
              app:argType="com.myapp.MyDataObject"
              android:defaultValue="@null"
              app:nullable="true"/&gt;
          ...
      &lt;/fragment&gt;
      ...
  &lt;/navigation&gt;
  </code></pre>
  
  <p>But when I load my app, I get the following exception:</p>
  
  <pre><code>java.lang.IllegalStateException: Fragment MyStartFragment{a4ffd1f (ca52d4dc-ff36-4a93-8ebf-f11af7b7d5aa) id=0x7f080145} has null arguments
      at com.myapp.MyStartFragment$$special$$inlined$navArgs$1.invoke(FragmentNavArgsLazy.kt:42)
      at com.myapp.MyStartFragment$$special$$inlined$navArgs$1.invoke(Unknown Source:0)
      at androidx.navigation.NavArgsLazy.getValue(NavArgsLazy.kt:44)
      at androidx.navigation.NavArgsLazy.getValue(NavArgsLazy.kt:34)
      at com.myapp.MyStartFragment.getArgs(Unknown Source:27)
      at com.myapp.MyStartFragment.onAttach(MyStartFragment.kt:85)
  </code></pre>
  
  <p>And the exception is triggered by this piece of code in MyStartFragment:</p>
  
  <pre><code>private val args: MyStartFragmentArgs by navArgs()
  override fun onAttach(context: Context) {
      super.onAttach(context)
      val title = if(this.args.dataObject == null) getString(R.string.start_list_title) else this.args.dataObject!!.name
      ...
  }
  </code></pre>
  
  <p>And here is the code for MyDataObject:</p>
  
  <pre><code>@Parcelize
  data class MyDataObject (
      val id: String,
      val name: String,
      val externalIdentifier: String
      val type: MyDataEnumType,
      var responsibleUser: SomeOtherParcelableClass?
  ): Parcelable 
  </code></pre>
  
  <p>What I don't understand is that my start destination doesn't get passed arguments properly by the navigation controller. Am I missing something here?</p>