Android resource linking failed activity_main.xml:19: error: attribute android:defaultNavHost not found after adding navigation components
Android resource linking failed activity_main.xml:19: error: attribute android:defaultNavHost not found after adding navigation components
最近我对令人兴奋的 android 新工具感到非常兴奋。其中导航字面上吸引了我。我认为这个 code lab 入门会很棒。尽管如此,作为一个绝对的初学者,我发现它有点有趣,因为它没有说明任何关于设置导航组件的分步操作。所以我开始将它分成小部分并开始将其实现到一个单独的项目中。
我的主要activity代码
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()
}
在我的主要 activity 布局中
<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"
/>
此日志显示错误后
你的错误是不言自明的
Android resource linking failed activity_main.xml:19: error: attribute android:defaultNavHost not found
原因是你写错了属性 android:navGraph="@navigation/mobile_navigation"
android:defaultNavHost="true"
应该是 app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
如果您编辑这些属性,您将看到您的项目构建成功,并且在您的导航图文件中显示为默认导航主机,希望它能回答您的问题。
如果您已经提供了正确的属性;即;
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
& 你仍然收到此错误,请按照以下步骤操作:
在项目 build.gradle 中:
依赖项{
类路径 "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1"
}
在应用程序中 build.gradle :
def nav_version = "2.2.2"
实施"androidx.navigation:navigation-fragment-ktx:$nav_version"
实施"androidx.navigation:navigation-ui-ktx:$nav_version"
最近我对令人兴奋的 android 新工具感到非常兴奋。其中导航字面上吸引了我。我认为这个 code lab 入门会很棒。尽管如此,作为一个绝对的初学者,我发现它有点有趣,因为它没有说明任何关于设置导航组件的分步操作。所以我开始将它分成小部分并开始将其实现到一个单独的项目中。
我的主要activity代码
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()
}
在我的主要 activity 布局中
<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"
/>
此日志显示错误后
你的错误是不言自明的
Android resource linking failed activity_main.xml:19: error: attribute android:defaultNavHost not found
原因是你写错了属性 android:navGraph="@navigation/mobile_navigation"
android:defaultNavHost="true"
应该是 app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
如果您编辑这些属性,您将看到您的项目构建成功,并且在您的导航图文件中显示为默认导航主机
如果您已经提供了正确的属性;即;
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
& 你仍然收到此错误,请按照以下步骤操作:
在项目 build.gradle 中:
依赖项{ 类路径 "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1" }
在应用程序中 build.gradle :
def nav_version = "2.2.2"
实施"androidx.navigation:navigation-fragment-ktx:$nav_version"
实施"androidx.navigation:navigation-ui-ktx:$nav_version"