当前位置: 首页 > 知识库问答 >
问题:

扩展Super.onCreate上显示空指针的BaseActivity

秦楚
2023-03-14

baseActivity.java

    public class BaseActivity extends Activity{
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            DMCApplication.getInstance().addActivity(this);
        }

        @Override
        protected void onDestroy() {
            DMCApplication.getInstance().removeActivity(this);
            super.onDestroy();
        }
    }
    public class SplashScreenActivity extends BaseActivity {

        private Handler handler = new Handler();

        private static final int sDelayTime = 2000;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_splash_screen);

            startService();
            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    startMainActivity();
                }
            }, sDelayTime);
        }

        private void startMainActivity() {
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
            finish();
        }

        private void startService() {

        }
}
public class DMCApplication extends Application {

    private static DMCApplication mDmcApplication;

    private List<Activity> activities;

    public ControlPoint mControlPoint;

    @Override
    public void onCreate() {
        super.onCreate();
        if (activities != null) {
            activities = null;
        }
        activities = new ArrayList<Activity>();
        mDmcApplication = this;
    }


    public void addActivity(Activity activity) {
        if (activities != null) {
            if (activities.contains(activity)) {
                activities.remove(activity);
            }
            activities.add(activity);
        }
    }


    public void removeActivity(Activity activity) {
        if (activities != null && activities.contains(activity)) {
            activities.remove(activity);
        }
    }


    public static DMCApplication getInstance() {
        return mDmcApplication;
    }


    public void quit() {
        if (activities != null) {
            for (Activity activity : activities) {
                activity.finish();
            }
            activities = null;
        }
    }


    public void setControlPoint(ControlPoint controlPoint) {
        mControlPoint = controlPoint;
    }


    public ControlPoint getControlPoint() {
        return mControlPoint;
    }
}

共有1个答案

宇文和昶
2023-03-14

您尚未在清单中注册DMCapplication。你必须做这样的事

 <application
    android:name=".DMCApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"

附言。名称应完全限定。

 类似资料:
  • 此代码中可能存在空指针取消引用错误: 如何解决这些问题?

  • 问题内容: 我在登录模式提交按钮的单击侦听器中遇到问题。 这是错误。 我对什么是空指针异常有一个合理的了解,并且已经彻底搜索了一个类似于我的问题。我试图以几种方式重新格式化点击侦听器,确保我具有正确的视图ID等。 显然,还有更多但与我认为无关的话题。这是带有按钮的对话框的XML文件。 任何帮助将不胜感激。 问题答案: 是因为它不属于 当你调用内部的,它要寻找一个你的活动的布局中。 试试这个代替:

  • 这个问题很明显,但仍然没有人帮我解决。我正在使用一个需要通过数组适配器填充字符串的旋转器。但是在运行应用程序时,发生了< code >空指针异常。我还声明了spinner和< code>ArrayAdapter 这是我的代码: 在onCreate中:

  • 我一直试图利用我以前的单链表来创建双向链表。因此,在Node类中,我添加了以前的节点引用,并更新了类中的和方法,以适应在列表类中的来回。将新节点放在当前节点之后,并将新节点放在列表类中当前节点之前;这是因为我想在DoublyLinked中以升序添加和插入我的值列表类。[这可能听起来很混乱,但我会在下面发布代码]当我测试我的方法[在类]我得到一个空指针异常。 正如我所说,我已经为此工作了几天,所以在

  • 指针变量也是变量,是变量就可以任意赋值,不要越界即可(32位编译器指针大小为4字节,64位编译器指针大小为8字节),但是,任意数值赋值给指针变量没有意义,因为这样的指针就成了野指针,此指针指向的区域是未知(操作系统不允许操作此指针指向的内存区域)。所以,野指针不会直接引发错误,操作野指针指向的内存区域才会出问题。 int a = 100; int *p; p = a; //把a的值赋值给指针变量p

  • 当场景失败时,尝试截图时会引发空指针异常。我有一个actions类,其中我已经玷污了捕获截图方法。 范围报告是使用Itestlisterner接口实现的。下面给出了实现屏幕截图方法的代码: