现在出现一个问题, 当有两个SetupWizard的时候, 第一次开机需要调用ResolverActivity进行选择,但这时发现启动不了这个Activity, 也许是时间太早了?不知道什么原因.

解决方案 »

  1.   

    但这时发现启动不了这个Activity, 也许是时间太早了可能是系统的一些服务和组建程序提动出错了,或者是你的Activity有问题,:-)
      

  2.   

    两个SetupWizard?这个是否合理
      

  3.   

    其实是一个setup wizard, 一个provision, 当然也有可能存在两个setup wizard的情况.出错原因是当有两个 (或多个) Setupwizard 时, 会在开机早期调用system的内部 Activity (ResolverActivity), 而这时ActivityThread 的某个成员变量 mConfiguration还没有被初始化, 所以报空指针错误.在2.2中, mConfiguration的第一次赋值是在执行 statusBar.systemReady() 时, 而2.3中相对应的函数体为空 (StatusBarManagerService.systemReady()).修改Configuration的构造函数, 做空指针判断, 可以解决这个问题:public Configuration(Configuration o) {
        if (o == null)
            setToDefaults();
        else
            setTo(o);