我刚收到其中一位用户的崩溃报告,其中包含以下错误跟踪:
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 abstract class Other extends BaseActivity
public abstract class BaseActivity extends ActionBarActivity
所有类都是公共的,已命名,并且没有用户定义的构造函数。
至于片段WizardFirstPage
:(在Wizard
中定义)
public class WizardFirstPage extends Fragment
也没有用户定义的构造函数。
我错过了什么?
答案 0 :(得分:9)
public class WizardFirstPage extends Fragment
这是packageName.Wizard
的内部类。只有当类被声明为static
时才会起作用,如Blackbelt所示:
public static class WizardFirstPage extends Fragment
当Wizard
活动经历配置更改或在流程终止后重新创建时,Android将尝试创建Wizard$WizardFirstPage
的实例。使用您当前的方法,Android无法执行此操作,因为只有Wizard
的实例才能创建Wizard$WizardFirstPage
的实例。将WizardFirstPage
更改为static
将解决此问题。