求大神告知报错原因,空对象引用问题
    private void Draw() {

        /**绘制游戏背景**/
        //mCanvas.drawBitmap(mbitmapBg,0,0, mPaint);

mCanvas.drawColor(mBackgroundColor); //此行报错

        /**绘制小球**/
        mCanvas.drawCircle(mPosX,mPosY,mCircleRadius,mCirclePaint);
        //mCanvas.drawBitmap(mbitmapBall, mPosX,mPosY, mPaint);
        /**X轴 Y轴 Z轴的重力值**/
        mCanvas.drawText("X轴重力值 :" + mGX, 0, 20, mPaint);
        mCanvas.drawText("Y轴重力值 :" + mGY, 0, 40, mPaint);
        mCanvas.drawText("Z轴重力值 :" + mGZ, 0, 60, mPaint);
    }



    @Override
    public void run() {
        while (mIsRunning) {

            /** 取得更新游戏之前的时间 **/
            long startTime = System.currentTimeMillis();

            /** 在这里加上线程安全锁 **/
            synchronized (mSurfaceHolder) {
                /** 拿到当前画布 然后锁定 **/
                mCanvas = mSurfaceHolder.lockCanvas();

Draw(); //此行报错

                /** 绘制结束后解锁显示在屏幕上 **/
                mSurfaceHolder.unlockCanvasAndPost(mCanvas);
            }

            /** 取得更新游戏结束的时间 **/
            long endTime = System.currentTimeMillis();

            /** 计算出游戏一次更新的毫秒数 **/
            int diffTime = (int) (endTime - startTime);

            /** 确保每次更新时间为50帧 **/
            while (diffTime <= TIME_IN_FRAME) {
                diffTime = (int) (System.currentTimeMillis() - startTime);
                /** 线程等待 **/
                Thread.yield();
            }

        }

报错内容:
图片说明

2个回答

报错提示 mCanvas.drawColor(int),应该传int型,而你传的是一个null的object类型的

weixin_35771961
Nabati 不是参数问题,canvas值为空
大约 4 年之前 回复
weixin_35771961
Nabati 那这个问题应该如何解决呢?
大约 4 年之前 回复

直接给mCanvas.drawColor()传一个int类型的颜色值就可以把,如果一定要用你之前的可能为null的对象,要先做一个非空的判断

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐