Otrzymuję IllegalStateException: niedomiar w wyjątku odtwarzania,, który powoduje awarię mojej aplikacji. To zaczęło się dziać po aktualizacji Androida 4.3. Na Android 3.0 - 4.2.x działa dobrze.niedomiar w przywracaniu w systemie Android 4.3
Wyjątkiem dzieje na drugim
canvas.restore();
podane poniżej jest mój kod rysunek
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);
}
}
Moje pytanie jest
- Jakie jest znaczenie tego błędu?
- Jak naprawić ten błąd?
Wygenerowano komunikat śledzenia stosu. Linia 165 odpowiada drugiej canvas.restore()
08-13 18: 13: 09,083: E/Android Runtime (14139) krytyczny wyjątek: gwintowania 506 13/08 18: 13: 09,083: e/AndroidRuntime (14139): java.lang.IllegalStateException: niedomiar w odtwarzaniu 08-13 18: 13: 09.083: E/AndroidRuntime (14139): o android.graphics.Canvas.restore (metoda macierzysta) 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)
Proszę zaksięgować cały ślad stosu. – CommonsWare
dodano ślad stosu – prashant