Android资源链接失败activity_main.xml:19:错误:添加导航组件后找不到属性android:defaultNavHost

3 android attributes android-architecture-navigation androidx

最近,我对新的令人兴奋的 android 工具感到非常兴奋。其中 Navigation 从字面上吸引了我。我认为这个代码实验室非常适合入门。尽管如此,作为一个绝对的初学者,我发现它有点有趣,因为它没有说明设置导航组件的分步说明。所以我开始把它分解成一口大小的部分,并开始将它实施到一个单独的项目中。

我的主要活动代码

class MainActivity : AppCompatActivity() {

 override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)

setSupportActionBar(toolbar)
}

override fun onSupportNavigateUp(): Boolean =
  findNavController(R.id.my_nav_host_fragment).navigateUp()
}
Run Code Online (Sandbox Code Playgroud)

在我的主要活动布局中

<fragment
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1"
  android:id="@+id/my_nav_host_fragment"
  android:name="androidx.navigation.fragment.NavHostFragment"
  android:navGraph="@navigation/mobile_navigation"
  android:defaultNavHost="true"
  />
Run Code Online (Sandbox Code Playgroud)

此日志显示错误后在此处输入图片说明

Wub*_*dub 6

您的错误是不言自明的

Android 资源链接失败 activity_main.xml:19: 错误: 属性 android:defaultNavHost 未找到

原因是你写了错误的属性android:navGraph="@navigation/mobile_navigation" android:defaultNavHost="true",应该是app:navGraph="@navigation/mobile_navigation" app:defaultNavHost="true"

如果您编辑这些属性,您将看到您的项目成功构建并在您的导航图文件中显示为默认导航主机在此处输入图片说明,希望它能回答你的问题。