그리기 응용 프로그램에 문제가 있습니다. 드로잉 액티비티를 종료 할 때 아래와 같은 오류가 발생합니다 (예 : 반환 버튼 포함). 나는 게시물을 보았지만 아무것도 도움이되지 않습니다. 잠시 동안 작동하도록 노력했기 때문에 제 도면 표면 작업을 살펴볼 수 있다면 많은 의미가 있습니다! 고마워요 :)표면 그리기, unlockCanvasAndPost 및 IllegalArgumentException
오류 : DrawingSurface의
03-25 13:41:36.760: E/AndroidRuntime(6642): FATAL EXCEPTION: Thread-423
03-25 13:41:36.760: E/AndroidRuntime(6642): java.lang.IllegalArgumentException
03-25 13:41:36.760: E/AndroidRuntime(6642): at android.view.Surface.nativeUnlockCanvasAndPost(Native Method)
03-25 13:41:36.760: E/AndroidRuntime(6642): at android.view.Surface.unlockCanvasAndPost(Surface.java:457)
03-25 13:41:36.760: E/AndroidRuntime(6642): at android.view.SurfaceView$4.unlockCanvasAndPost(SurfaceView.java:812)
03-25 13:41:36.760: E/AndroidRuntime(6642): at com.ecp.drawing.DrawingSurface$DrawThread.run(DrawingSurface.java:80)
홈페이지 코드 :
public void run() {
Canvas canvas = null;
while (_run){
if(isDrawing == true){
try{
canvas = mSurfaceHolder.lockCanvas(null);
if(mBitmap == null){
mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
}
final Canvas c = new Canvas (mBitmap);
c.drawColor(0, PorterDuff.Mode.CLEAR);
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
commandManager.executeAll(c,previewDoneHandler);
previewPath.draw(c);
canvas.drawBitmap (mBitmap, 0, 0,null);
} finally {
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
이미 표면 파괴 기능이있다 :
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
boolean retry = true;
thread.setRunning(false);
while (retry) {
try {
thread.join();
retry = false;
} catch (InterruptedException e) {
// we will try it again and again...
}
}
}
4.3에서이 버그를 해결하는 방법에 대한 아이디어가 있으십니까? –
이것은 앱 버그 일 수 있습니다. 확실히하려면 초기 예외를 확인해야합니다. 어떤 경우 4.3 이전 버전 인 경우 https://code.google.com/p/android/issues/detail?id=58385와 관련이 없습니다. – fadden
@fadden을 돌보는 사람이라면 누구나 옳다. 그 버그는 여전히 Android 최신 업데이트에서 수정되지 않았다. –