안녕하세요.
멀쩡히 잘 쓰던 canvas, bitmap 이 갑자기 오류가 나기
시작해서 이렇게 질문을 드려요ㅠ;;
/ / 컴파일 오류는 아니고, 실행 할 때 오류가 발생 해요
SurfaceHolder holder = getSurfaceHolder();
Canvas canvas = null;
Bitmap imgIcon2 = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.abc);
canvas = holder.lockCanvas();
canvas.drawBitmap(imgIcon2, 0, 0, null);
holder.unlockCanvasAndPost(canvas);
일단 소스는 이렇게 했어요.
그림이 지금까지 캔버스에 잘 그려졌는데
파일명을 바꾸자 갑자기 실행 시 '예상치 않게 중지' 되었다고 뜨네요ㅠ;;
파일명이 원래 test.jpg 라서 소스도 R.drawable.test 이렇게 썼었거든요.
그때는 잘 됐었는데, 파일명을 abc.jpg 로 바꾸고, R.drawable.abc 로 소스를 수정하자 갑자기 오류가 시작됐어요ㅠ;;
그래서 다시 test.jpg 로 바꾸고 R.drawable.test 로 소스를 수정해봐도 계속해서 오류가 발생하네요ㅠㅠ;;
(다른건 전혀 절대 손도 안됐어요..ㅠ)
E/AndroidRuntime(14264): java.lang.NullPointerException
E/AndroidRuntime(14264): at $CanvasEngine.<init>(test.java:113)
E/AndroidRuntime(14264): at .onCreateEngine(test.java:32)
E/AndroidRuntime(14264): at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage(WallpaperService.java:814)
E/AndroidRuntime(14264): at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:61)
E/AndroidRuntime(14264): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(14264): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(14264): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(14264): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(14264): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(14264): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:869)
E/AndroidRuntime(14264): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:627)
E/AndroidRuntime(14264): at dalvik.system.NativeStart.main(Native Method)
로그캣 이에요.
Null 떠 있길레 캔버스에 null 이 들어가 있나 했는데,
" canvas = holder.lockCanvas(); "
이 소스가 이미 캔버스에 뭔가 넣어주는 소스가 아닌가요?..;;;
원인을 도저히 모르겠어요 ㅠㅠ 답변 좀 부탁드릴게요.
읽어주셔서 감사드려요~
클린빌드해보세요