java - 确保类名存在,是公共(public)的,并且具有类名和空构造函数的公共(public) fragment 的空构造函数

标签 java android android-fragments runtimeexception

我刚刚从一位用户那里收到了一份崩溃报告,其中包含以下错误跟踪:

Unable to instantiate fragment packageName.Wizard$WizardFirstPage: make sure class name exists, is public, and has an empty constructor that is public   

这是类声明:

public class Wizard extends Other

公共(public)抽象类 Other extends BaseActivity

公共(public)抽象类 BaseActivity 扩展了 ActionBarActivity

所有类都是公开的、命名的并且没有用户定义的构造函数。

至于 fragment WizardFirstPage :(在 Wizard 中定义)

公共(public)类 WizardFirstPage extends Fragment

也没有用户定义的构造函数。

我错过了什么?

最佳答案

public class WizardFirstPage extends Fragment

那是packageName.Wizard 的一个内部类。仅当类声明为 static 时才有效,如 Blackbelt 所示:

public static class WizardFirstPage extends Fragment

Wizard Activity 发生配置更改,或在进程终止后重新创建时,Android 将尝试创建 Wizard$WizardFirstPage 的实例。使用您当前的方法,Android 无法执行此操作,因为只有 Wizard 的实例才能创建 Wizard$WizardFirstPage 的实例。将 WizardFirstPage 更改为 static 将解决此问题。

关于java - 确保类名存在,是公共(public)的,并且具有类名和空构造函数的公共(public) fragment 的空构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661690/

相关文章:

android - 任何带有 NEON 指令集的 Android 平板电脑?

java - 任务 ':transformClassesWithJarMergingForDebug'的Android项目错误执行失败

android - 在 ViewPager 中使用选项卡时出现错误 "Java.lang.IllegalStateException Activity has been destroyed"

java - 在 JPanel 中绘制一组对象

java - 如何在 Java 中更新 Swing JProgressBar

android - 将按钮对齐到屏幕底部

Android 判断是否应该使用多 fragment 布局

android - 如何在 Android 的 viewpager 的不可见 fragment 中执行一个函数

java - 使 Sprite 从边缘反弹

Java:关于 Collections ReverseComparator 的实现