Jaiel
Dauergast
- 235
ich kriege heute mir ncihts dir ncihts eine fehlermeldung die ich zuvor nciht bekommen habe:
hier der code ich habe zeile 585 markiert
zeile 137 im thread ruft einfach nur diesen code auf:
Manchmal lässt sich der Fehler nciht reproduzieren manchmal kommt er unverhofft manchmal auch nciht
ist erst seit heute so
Ich habe zwar ein paar Veränderungen gemacht aber keine die die Art und weise wie ich zeichne betreffen oder wann ich locke
ich synchronisiere sogar den sHolder genau wegen sowas wie kann der fehler dann auftreten?
kann es was mit android 5 zu tun haben?
Ich verstehe wirklich nciht wieso das alles jetzt auf einmal kommt!!!
Der ursprüngliche Beitrag von 13:05 Uhr wurde um 13:27 Uhr ergänzt:
EDIT: Ok ich hab etwas ganz Dummes vergessen. Ich hab aus bequemlichkeit einem Button noch gar kein String zu gewiesen der war auf Null ich hab das irgednwie vergessen omg obwohl ich von dem Fehler wusste
hab grad mein Code min. 10 mal durchgehabt bis mir es wieder eingefallen ist
der Fehler kam nur von dem Surfacelock weil da auch die draw methode drin ist es war aber in Wirklichkeit eine NullPointerException!!!
(Da sieht man mal was passiert wenn man einfach alles mit throwable abfängt und dann auch noch versucht wieder zu locken udn wieder und wieder ohne zu entlocken...)
Ich habe den Try Catch block jetzt verändert:
PHP:
04-10 12:44:33.361: E/SurfaceHolder(14537): Exception locking surface
04-10 12:44:33.361: E/SurfaceHolder(14537): java.lang.IllegalArgumentException: Surface was already locked
04-10 12:44:33.361: E/SurfaceHolder(14537): at android.view.Surface.lockCanvas(Surface.java:264)
04-10 12:44:33.361: E/SurfaceHolder(14537): at android.view.SurfaceView$4.internalLockCanvas(SurfaceView.java:909)
04-10 12:44:33.361: E/SurfaceHolder(14537): at android.view.SurfaceView$4.lockCanvas(SurfaceView.java:877)
04-10 12:44:33.361: E/SurfaceHolder(14537): at de.jaielsoft.surfaceviews.MainView.doDraw(MainView.java:585)
04-10 12:44:33.361: E/SurfaceHolder(14537): at de.jaielsoft.threads.MainThread.run(MainThread.java:137)
hier der code ich habe zeile 585 markiert
zeile 137 im thread ruft einfach nur diesen code auf:
PHP:
public void doDraw()
{
if(!surfaceReady)return;
synchronized(sHolder)
{
try
{
canvas = sHolder.lockCanvas();//Das ist zeile 585 weswegen der Fehler kommt
mThread.drawOnCanvas(canvas,true);
}
catch(Throwable t)
{
canvas=null;
}
finally
{
if(canvas!= null)
{
sHolder.unlockCanvasAndPost(canvas);
}
}
}
}
Manchmal lässt sich der Fehler nciht reproduzieren manchmal kommt er unverhofft manchmal auch nciht
ist erst seit heute so
Ich habe zwar ein paar Veränderungen gemacht aber keine die die Art und weise wie ich zeichne betreffen oder wann ich locke
ich synchronisiere sogar den sHolder genau wegen sowas wie kann der fehler dann auftreten?
kann es was mit android 5 zu tun haben?
Ich verstehe wirklich nciht wieso das alles jetzt auf einmal kommt!!!
Der ursprüngliche Beitrag von 13:05 Uhr wurde um 13:27 Uhr ergänzt:
EDIT: Ok ich hab etwas ganz Dummes vergessen. Ich hab aus bequemlichkeit einem Button noch gar kein String zu gewiesen der war auf Null ich hab das irgednwie vergessen omg obwohl ich von dem Fehler wusste
hab grad mein Code min. 10 mal durchgehabt bis mir es wieder eingefallen ist
der Fehler kam nur von dem Surfacelock weil da auch die draw methode drin ist es war aber in Wirklichkeit eine NullPointerException!!!
(Da sieht man mal was passiert wenn man einfach alles mit throwable abfängt und dann auch noch versucht wieder zu locken udn wieder und wieder ohne zu entlocken...)
Ich habe den Try Catch block jetzt verändert:
PHP:
synchronized(sHolder)
{
try
{
canvas = sHolder.lockCanvas();
mThread.drawOnCanvas(canvas,true);
}
catch(Throwable t)
{
sHolder.unlockCanvasAndPost(canvas);
canvas=null;
}
finally
{
if(canvas!= null)
{
sHolder.unlockCanvasAndPost(canvas);
}
}
}
Zuletzt bearbeitet: