Shi*_*yay 6 android android-layout android-fragments android-studio android-studio-3.6.1
无法实例化以下类:(
androidx.fragment.app.FragmentContainerView打开类、显示异常、清除缓存)提示:
View.isInEditMode()在您的自定义视图中使用以在 IDE 中显示时跳过代码或显示示例数据。如果这是意外错误,您也可以尝试构建项目,然后手动刷新布局。异常详情:
Run Code Online (Sandbox Code Playgroud)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。我解决了这个问题,然后显示了上面的消息。我尝试过已知的解决方案,例如重建、刷新布局和使缓存/重启无效等,但他们没有成功。
如果你查看 的源代码FragmentContainerView,你会看到:
/**
* Do not call this constructor directly. Doing so will result in an
* {@link UnsupportedOperationException}.
*/
public FragmentContainerView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
throw new UnsupportedOperationException("FragmentContainerView must be within a "
+ "FragmentActivity to be instantiated from XML.");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是布局预览调用的构造函数。在 Android Studio 团队修复此问题之前,您似乎无法对此错误采取任何措施。
这是系统“应该”使用的构造函数:
FragmentContainerView(Context context, AttributeSet attrs, FragmentManager fm) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您实际运行您的应用程序,则应该调用它并且一切都应该正常工作。
| 归档时间: |
|
| 查看次数: |
1117 次 |
| 最近记录: |