Android空引用问题的解决方法——on a null object reference

Android空引用问题的解决方法——on a null object reference

前言:今天写了一个小程序,自定义view组件,但是却怎么也运行不起来,一直空指针引用报错。

java.lang.NullPointerException: Attempt to invoke virtual method ‘android.graphics.Paint$FontMetrics android.graphics.Paint.getFontMetrics()’ on a null object reference

解决方法:

因为自定义View,有三个构造函数:

public SideBar(Context context) {
        super(context);
    }

    public SideBar(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public SideBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(attrs);
    }

我们只需把构造函数里的super(…);换成this(…);就可以解决空指针引用的问题。

public SideBar(Context context) {
        this(context,null);
    }

    public SideBar(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }

    public SideBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(attrs);
    }

你可能感兴趣的:(Android)