无法示例化以下类:androidx.fragment.app.FragmentContainerView
(开启类别、显示例外、清除快取)
提示:在自定义视图中使用View.isInEditMode()
可以跳过代码或在IDE中显示示例数据.如果这是意外错误,您还可以尝试生成项目,然后手动刷新布局.
例外详细信息:
java.lang.UnsupportedOperationException: FragmentContainerView must be within a FragmentActivity to be instantiated from XML.
at androidx.fragment.app.FragmentContainerView.<init>(FragmentContainerView.java:117)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1097)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at android.view.LayoutInflater.inflate(LayoutInflater.java:501)
在基本活动或其他模板接受空活动中显示了此消息,但未显示布局预览
在此消息之前,显示了一条关于用fragmentcontainerview
替换片段标记的消息。我修复了此问题,然后显示了上述消息。我尝试了已知的解决方案,如重建、刷新布局和使缓存无效/重新启动等,但它们没有成功。
2条答案
按热度按时间nvbavucw1#
如果查看
FragmentContainerView
的源代码,您将看到:不幸的是,这是布局预览调用的构造函数。在Android Studio团队修复此问题之前,您似乎无法对此错误采取任何措施。
这是系统“应该”使用的构造函数:
如果你真的运行你的应用程序,这应该被调用,一切都应该正常工作。
axkjgtzd2#
今天遇到了同样的问题。看看这个:https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-alpha01。
他们已经注意到了这个问题,并发布了一个更新的版本来修复这个错误。
我试着使用这个版本的片段库,结果发现没有错误,但是片段仍然没有显示在布局预览中。不确定这是我的错误还是他们还在处理它。
更新:
要使用库或指定库的特定版本,请执行以下操作:
打开文件build.gradle(模块:app),请在dependency区段中加入下列行:
例如,如果要使用片段库的版本1.3.0-alpha 01,请添加以下行:
如果您想查找每个库的名称,请查看以下内容:https://developer.android.com/jetpack/androidx/migrate/artifact-mappings
要了解库的当前版本和最新更新,请执行以下操作:https://developer.android.com/jetpack/androidx/versions/