繁体   English   中英

Hilt更改片段名称时如何使用导航组件

[英]How to use navigation component when Hilt changes the names of the fragments

我正在创建一个 Android 应用程序 (Java) 并首次使用导航组件和 Hilt。 在导航编辑器中,我正在创建目的地,并看到我创建的带有 @AndroidEntryPoint 注释的片段现在显示为“Hilt_”+片段名称。 现在我的应用程序无法构建,因为编译器正在寻找一个带有“Hilt_”+片段名称的构造函数,而不仅仅是片段名称。 例如:我的片段被命名为 HomeFragment,但在导航编辑器中它被称为 Hilt_HomeFragment。 编译时出现的错误:

Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.blah.blah.fragment.Hilt_HomeFragment: could not find Fragment constructor

应该如何处理名称差异,以便我可以一起使用 Hilt 和导航组件?

“Hilt_HomeFragment”是一个为 Hilt 目的而生成的类,你不应该关心它。 只需制作Build -> Clean Project 然后转到您的图表,清除错误的name并使用完整的包路径写入正确的名称。 例如:

android:name="com.example.home.HomeFragment"

当您开始在name字段中输入时,Android Studio 将向您显示提示,其中包含您可以使用的匹配片段 - 只需选择正确的片段, name就会被填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM