Unterlauf in Wiederherstellung in Android 4.3

Ich bekomme eineIllegalStateException: Unterlauf in Wiederherstellungsausnahme, was dazu führt, dass meine Anwendung abstürzt. Dies geschah nach dem Update auf Android 4.3. Auf Android 3.0 - 4.2.x funktioniert es einwandfrei.

Die Ausnahme tritt in der Sekunde auf

canvas.restore();

Da unten ist mein Zeichencode

private void doDraw(Canvas canvas) {
        if(mTickerBackGround!=null && (!mTickerBackGround.isRecycled())){
            canvas.drawBitmap(mTickerBackGround, 0, 0, null);
        }
        if((mBitMapBuffer!=null)){
            canvas.save();
            canvas.translate(mX, 0);
            if(!mBitMapBuffer.isRecycled()){
                canvas.drawBitmap(mBitMapBuffer, 0, 0, null);
            }
            canvas.restore();

            if(bitMapWidth+mX<mCanvasWidth){
                canvas.translate(bitMapWidth+mX, 0);    
                if(!mBitMapBuffer.isRecycled()){
                    canvas.drawBitmap(mBitMapBuffer, 0, 0, null);
                }
                canvas.restore();                   
            }

            if(bitMapWidth+mX<=0){
                mX = 0;
            }else if(Math.abs(mX)>(bitMapWidth)){                   
                mX= mCanvasWidth; 
            }

            mX-=TickerConstants.SCROLLING_SMOOTHNESS*density;;
        }
        if(mLogo!=null && (!mLogo.isRecycled())){
            canvas.drawBitmap(mLogo, mCanvasWidth-(60*density), mLogo.getHeight()/6, null);
        }
    }

Meine Frage ist

Was ist die Bedeutung dieses Fehlers?Wie behebe ich diesen Fehler?

Die generierte Stack-Trace-Nachricht lautet. Zeile 165 entspricht der zweiten canvas.restore ()

08-13 18: 13: 09.083: E / AndroidRuntime (14139): FATAL EXCEPTION: Thread-506 08-13 18: 13: 09.083: E / AndroidRuntime (14139): java.lang.IllegalStateException: Unterlauf in Wiederherstellung 08-13 18: 13: 09.083: E / AndroidRuntime (14139): at android.graphics.Canvas.restore (native Methode) 08-13 18: 13: 09.083: E / AndroidRuntime (14139): at com.my.package.name. ticker.TickerSurfaceView $ TickerThread.doDraw (TickerSurfaceView.java:165) 08-13 18: 13: 09.083: E / AndroidRuntime (14139): at com.my.package.name.ticker.TickerSurfaceView $ TickerThread.run (TickerSurfaceView.java : 128)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage