안녕하세요.


멀쩡히 잘 쓰던 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();  "


이 소스가 이미 캔버스에 뭔가 넣어주는 소스가 아닌가요?..;;;


원인을 도저히 모르겠어요 ㅠㅠ 답변 좀 부탁드릴게요.


읽어주셔서 감사드려요~