下载在Android 4.3中恢复

下载在Android 4.3中恢复,第1张

概述我得到一个IllegalStateException:恢复异常的下溢,这导致我的应用程序崩溃. 这开始发生在 Android 4.3更新之后.在android 3.0 – 4.2.x它工作正常. 第二个例外发生 canvas.restore(); 以下是我的图纸代码 private void doDraw(Canvas canvas) { if(mTickerBackGround! 我得到一个IllegalStateException:恢复异常的下溢,这导致我的应用程序崩溃.
这开始发生在 Android 4.3更新之后.在androID 3.0 – 4.2.x它工作正常.

第二个例外发生

canvas.restore();

以下是我的图纸代码

private voID doDraw(Canvas canvas) {        if(mTickerBackGround!=null && (!mTickerBackGround.isRecycled())){            canvas.drawBitmap(mTickerBackGround,null);        }        if((mBitMapBuffer!=null)){            canvas.save();            canvas.translate(mX,0);            if(!mBitMapBuffer.isRecycled()){                canvas.drawBitmap(mBitMapBuffer,null);            }            canvas.restore();            if(bitMapWIDth+mX<mCanvasWIDth){                canvas.translate(bitMapWIDth+mX,0);                    if(!mBitMapBuffer.isRecycled()){                    canvas.drawBitmap(mBitMapBuffer,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);        }    }

我的问题是

>这个错误的意思是什么?
>如何解决这个错误?

生成的堆栈跟踪消息是.第165行对应于第二个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: Underflow in restore 08-13
18:13:09.083: E/AndroIDRuntime(14139): at
androID.graphics.Canvas.restore(Native Method) 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)

解决方法 错误在你的代码的这一部分:
if(bitMapWIDth+mX<mCanvasWIDth){        canvas.translate(bitMapWIDth+mX,0);            if(!mBitMapBuffer.isRecycled()){            canvas.drawBitmap(mBitMapBuffer,null);        }        canvas.restore();                       }

您调用的是restore(),而不是首先调用save().您甚至不需要调用translate(),也可以将x和y坐标传递给drawBitmap()调用.

总结

以上是内存溢出为你收集整理的下载在Android 4.3中恢复全部内容,希望文章能够帮你解决下载在Android 4.3中恢复所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存