2 y727289815 y727289815 于 2013.05.08 12:33 提问

Exception locking surface

Exception locking surface
E/SurfaceHolder( 2306): java.lang.IllegalArgumentException
E/SurfaceHolder( 2306): at android.view.Surface.lockCanvasNative(Native Method)
E/SurfaceHolder( 2306): at android.view.Surface.lockCanvas(Surface.java:76)
E/SurfaceHolder( 2306): at android.view.SurfaceView$4.internalLockCanvas(SurfaceView.java:745)
E/SurfaceHolder( 2306): at android.view.SurfaceView$4.lockCanvas(SurfaceView.java:725)
E/SurfaceHolder( 2306): at cn.hz.d9.dsn.views.WelcomeView$ViewDrawThread.run(WelcomeView.java:593)
W/System.err( 2306): java.lang.NullPointerException

public void run() {

            while(flag){
                float Tiem = System.nanoTime();
                Canvas canvas=null;
                try {
                    canvas=surfaceHolder.lockCanvas();
                    synchronized(surfaceHolder){
                        view.draw(canvas);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                    if(canvas!=null)
                    {
                        surfaceHolder.unlockCanvasAndPost(canvas);
                    }
                }

                try {
                    Thread.sleep(timeSleep);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                Dtime = (System.nanoTime() - Tiem)/1000/1000/1000;

            }
        }

4个回答

pennons
pennons   2013.05.08 16:26

额 没写过这个东西,上网查了下貌似最大可能是循环时画布被锁定了把
CSDN移动问答
这个貌似和你的问题很像

sasuke38
sasuke38   2013.05.08 16:54
canvas=surfaceHolder.lockCanvas();
if(null==canvas){
     continue;
}
y727289815
y727289815 这个也没有用啊,我这两天查看了下底层的代码,错误是android_view_Surface.cpp这个类的 status_t err = surface->lock(&info, &dirtyRegion);这句代码报出来的。
4 年多之前 回复
liuye066
liuye066   2017.06.07 14:50

加载webview数据时,报了这个错怎么解决?有人遇到过吗?

suannai0314
suannai0314   2013.05.08 15:26

可能有surface未释放。需要全局log。转framwork组搞吧。这不一定是你的app引起的。需要总体把握。

你这问题,着实描述的模糊。

y727289815
y727289815 已经在原问题中了
4 年多之前 回复
suannai0314
suannai0314 你在问题中用下编辑,然后把代码编辑到原问题中。下边那代码太混乱了。别人根本没法看么。我给你下边的那个删了,其他人也不知道你那是问题的代码。
4 年多之前 回复
y727289815
y727289815 下面是部分代码
4 年多之前 回复
suannai0314
suannai0314 关键代码放上。也可能是手机的问题。
4 年多之前 回复
y727289815
y727289815 canvas=surfaceHolder.lockCanvas(); 返回null,且报Exception locking surface错误,其他机子都能通过就海信的一款机子有时候通不过有时候能行!!
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片