2016-06-06 9 views
0

Ich erhalte diese Meldung in LogCat Fenster:Mysterious LogCat Nachricht Surface mit

W/Oberfläche: ACHTUNG: Oberflächen mNativeObject (0xffffffffaebfa400) = mLockedObject (0xffffffffaeca2c00)

Was bedeutet es?

UPDATE Thi ist der Code, den ich zu sperren verwenden/entsperren die Leinwand

public void run() { 
    long startTime; 
    long drawTime; 
    //milliseconds per frame 
    long mspf = 1000/FRAMES_PER_SECOND; 
    while (mRun) { 
     if (currentState != STATE_PAUSE) { 
      startTime = System.currentTimeMillis(); 
      //draw to our canvas 
      Canvas c = null; 
      try { 
       c = mSurfaceHolder.lockCanvas(null); 
       if (c != null) { 
        drawAll(c); 
       } 
      } finally { 
       if (c != null) { 
        mSurfaceHolder.unlockCanvasAndPost(c); 
       } 
      } 
      //make the frame rate consistent 
      drawTime = (System.currentTimeMillis() - startTime); 
      if (drawTime <= mspf) { 
       try { 
        sleep(mspf - drawTime); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 
     } else { 
      //have the thread wait to start again so we aren't doing busy work 
      try { 
       synchronized (mWaitLock) { 
        mWaitLock.wait(); 
       } 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

Antwort

1

Sie können den Code sehen, der die Nachricht erzeugt here.

Dies bedeutet, dass sich ein nativer Flächenzeiger zwischen und unlockCanvasAndPost() geändert hat. Die Nachricht wurde in this change als Teil der Fixierung this bug hinzugefügt. Es gibt ein gutes Stück von Informationen in dem Fehlerbericht; Es kann Ihnen einen Einblick geben, was in Ihrer App die Situation verursacht.

IIRC es sollte harmlos sein - der Code warnt nur Sie, dass es entdeckt, was früher ein tödlicher Zustand war.