Обои аварийно завершают работу с ошибкой - queueBuffer: ошибка очереди буфера в SurfaceTexture


Live Wallpaper вылетает, код ниже

public void render(){


    Canvas canvas = null;
    try{

        canvas = this._surfaceHolder.lockCanvas(null);
        synchronized (this._surfaceHolder) {
            this.onDraw(canvas);
        }

    }catch(Exception e){ Log.w("Surface holder ", e.toString());}

    finally{
        if(canvas != null){
            this._surfaceHolder.unlockCanvasAndPost(canvas);
        }
    }   
}

protected void onDraw(Canvas canvas) {
    this.renderBackGround(canvas);
    for (Renderable renderable : this._fishes) {
        renderable.render(canvas);
    }
};

Вылетает с ошибкой ниже

06-07 19:49:09.143: E/SurfaceTextureClient(13629): queueBuffer: ошибка постановки буфера в очередь для SurfaceTexture, -19

06-07 19:49:09.143: E/SurfaceTextureClient(13629): сбой очереди (дескриптор=0x1c1b30) (нет такого устройства) 06-07 19:49:09.143: W/dalvikvm(13629): threadid=11: выход потока с необработанным исключением (группа = 0x40c671f8) 06-07 19:49:09.143: E/AndroidRuntime (13629): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: Thread-692

06–07 19:49:09.143: E/AndroidRuntime (13629): java.lang.IllegalArgumentException

06–07 19:49:09.143: E/AndroidRuntime (13629): в android.view.Surface.unlockCanvasAndPost (собственный метод)

06-07 19:49:09.143: E/AndroidRuntime(13629): в com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost(BaseSurfaceHolder.java:215)

заранее спасибо


person Rajesh    schedule 07.06.2012    source источник
comment
Вы решили эту проблему? У меня такая же проблема, и в Интернете, похоже, нет документированного решения.   -  person gsingh2011    schedule 11.11.2012


Ответы (1)


Обычно это происходит, когда вы поворачиваете устройство в средстве выбора живых обоев. Единственное решение, которое я нашел, — поймать исключение IllegalArgumentException и игнорировать его.

if (canvas != null) {
    try {
        holder.unlockCanvasAndPost(canvas);
    } catch (IllegalArgumentException e) {
        // Ignore weird bug when rotating in live wallpaper picker
    }
}
person Adam Nybäck    schedule 08.04.2013