当我使用数据绑定时,如何修复Inf​​lateException错误夸大类片段

时间:2019-04-03 07:41:21

标签: android android-activity kotlin fragment android-databinding

我是kotlin和android的新手(只是为了防止)。

我正在研究一个结构为OneSingleActivity的项目。

问题在于,当我按下HOME按钮,然后再次尝试进入该应用程序时,它会自动崩溃。

它给出以下错误代码

  

android.view.InflateException:二进制XML文件第30行:二进制XML   文件行#30:夸大类片段的错误

源错误的目标是我的包含绑定初始化程序的行。

我的目标是当我按下HomeButton时,然后进入驻留在后台的应用程序,检索我所在的最后一个片段。

我已经尝试过:

  • 更改manifest.xml(singleInstance,taskreparenting,clearTaskOnLaunch)

  • 将意图标志更改为clearTop

  • 使用DataindUtil.inflate

  • 更改“主页”按钮的工作方式

  • 当我onStop时杀死活动(它起作用,但是当我重新启动该应用程序时,我不在按HB之前的最后一个片段上)

  • 解除绑定

override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     ...
     // Creating a binding to activity layout
     // This is where app crash
        val binding: ActivityNavigationBinding = DataBindingUtil.setContentView(this, R.layout.activity_navigation)
        drawerLayout = binding.drawerLayout
}

activity_navigation.xml中使用的片段:

<fragment
      android:id="@+id/nav_fragment"
      android:name="androidx.navigation.fragment.NavHostFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:defaultNavHost="true"
      app:navGraph="@navigation/nav_app"/>

预期:

  • 当我按HB并转到BG中的应用程序时,应用程序不会崩溃,并且我位于我所在的最后一个片段上。

实际上是:

  • 当我按下HB并再次启动BG中的应用程序时,应用程序崩溃(当我单击该应用程序的图标时,它也无法正常工作)

非常感谢您为kotlin&android的新用户提供帮助。

1 个答案:

答案 0 :(得分:0)

您的navGraph似乎有问题。检查是否指定了正确的片段名称等。