Android 使用导航扩展带有片段的类布局时出错

Android 使用导航扩展带有片段的类布局时出错,android,kotlin,android-fragments,navigation,Android,Kotlin,Android Fragments,Navigation,我在尝试运行此应用程序时遇到此错误。我跟随了无数的向导,但都无济于事。我只是想做一个简单的导航练习 我的应用程序应该有一个活动(mainactivity)和两个子片段。第一个片段(TitleFragment)是主片段,它有一个调用findNavController()的按钮。导航到第二个片段(这只是一个空白的默认片段) 但是,应用程序将不会运行-出现以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{c

我在尝试运行此应用程序时遇到此错误。我跟随了无数的向导,但都无济于事。我只是想做一个简单的导航练习

我的应用程序应该有一个活动(mainactivity)和两个子片段。第一个片段(TitleFragment)是主片段,它有一个调用findNavController()的按钮。导航到第二个片段(这只是一个空白的默认片段)

但是,应用程序将不会运行-出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lbaron.test1/com.lbaron.test1.MainActivity}: android.view.InflateException: Binary XML file line #2 in com.lbaron.test1:layout/activity_main: Binary XML file line #2 in com.lbaron.test1:layout/activity_main: Error inflating class layout
MainActivity.kt

package com.lbaron.test1

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/myNavHostFragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:navGraph="@navigation/navigation"
            app:defaultNavHost="true"/>
    </LinearLayout>
</layout>
fragment_title.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".TitleFragment">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="title fragment" />
    <Button
        android:id="@+id/btn"
        android:layout_width="200dp"
        android:layout_gravity="center"
        android:layout_height="wrap_content"
        android:text="click"/>
</FrameLayout>

navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@id/titleFragment">

    <fragment
        android:id="@+id/titleFragment"
        android:name="com.lbaron.test1.TitleFragment"
        android:label="TitleFragment" >
        <action
            android:id="@+id/action_titleFragment_to_mainContent"
            app:destination="@id/mainContent" />
    </fragment>
    <fragment
        android:id="@+id/mainContent"
        android:name="com.lbaron.test1.MainContent"
        android:label="fragment_main_content"
        tools:layout="@layout/fragment_main_content" />
</navigation>

我的问题是:为什么我不能扩大我的班级布局


非常感谢-感谢所有帮助。

正如编译器所说,它无法对
活动\u main.xml
文件中使用的
父视图进行膨胀,这可能是因为它没有定义

尝试按如下方式编辑XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <androidx.fragment.app.FragmentContainerView
            android:id="@+id/myNavHostFragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:navGraph="@navigation/navigation"
            app:defaultNavHost="true"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <androidx.fragment.app.FragmentContainerView
            android:id="@+id/myNavHostFragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:navGraph="@navigation/navigation"
            app:defaultNavHost="true"/>

</LinearLayout>