2010-12-20 8 views
0

내 앱에서 일련의 그림을 표시합니다. 메모리상의 이유로, 사용하지 않을 때이 그림들을 직렬화하려고합니다. 직렬화가 작동하는 것처럼 보이지만 (예외 또는 충돌을 발생시키지 않음), Picture.createFromStream() 호출시 응용 프로그램이 충돌합니다. LogCat 출력에서 ​​유익한 정보를 찾을 수 없으며 실패한 호출이 Throwable을 throw하지 않습니다. 어떤 충고?Android : Picture.createFromStream()에서 응용 프로그램이 다운 됨

12-20 10:48:37.121: WARN/InputManagerService(53): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub[email protected] 
12-20 10:48:37.132: DEBUG/dalvikvm(53): threadid=17: bogus mon 1+0>0; adjusting 
12-20 10:48:50.901: DEBUG/dalvikvm(238): GC freed 15257 objects/1725344 bytes in 99ms 
12-20 10:50:26.912: DEBUG/dalvikvm(238): GC freed 29 objects/1200 bytes in 56ms 
12-20 10:51:03.661: INFO/DEBUG(28): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
12-20 10:51:03.661: INFO/DEBUG(28): Build fingerprint: 'generic/sdk/generic/:1.6/Donut/20842:eng/test-keys' 
12-20 10:51:03.661: INFO/DEBUG(28): pid: 238, tid: 238 >>> com. <<< 
12-20 10:51:03.661: INFO/DEBUG(28): signal 11 (SIGSEGV), fault addr 00000004 
12-20 10:51:03.661: INFO/DEBUG(28): r0 00000004 r1 00000000 r2 00000004 r3 00299b98 
12-20 10:51:03.661: INFO/DEBUG(28): r4 00000000 r5 00000000 r6 00000001 r7 00299b00 
12-20 10:51:03.661: INFO/DEBUG(28): r8 00299ac0 r9 00000000 10 66616374 fp 00299b60 
12-20 10:51:03.661: INFO/DEBUG(28): ip ac1285f4 sp bef065f0 lr ac06fc10 pc afb04408 cpsr 60000010 
12-20 10:51:03.771: INFO/DEBUG(28):   #00 pc 00004408 /system/lib/libcutils.so 
12-20 10:51:03.771: INFO/DEBUG(28):   #01 lr ac06fc10 /system/lib/libsgl.so 
12-20 10:51:03.771: INFO/DEBUG(28): stack: 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065b0 00299b00 [heap] 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065b4 ac07b4f8 /system/lib/libsgl.so 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065b8 00000000 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065bc 00616374 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065c0 00299b78 [heap] 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065c4 ac038f48 /system/lib/libsgl.so 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065c8 00299ac0 [heap] 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065cc 00000001 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065d0 00299b60 [heap] 
12-20 10:51:03.781: INFO/DEBUG(28):  bef065d4 00299b78 [heap] 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065d8 00000000 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065dc 00000001 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065e0 00299b00 [heap] 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065e4 00299b78 [heap] 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065e8 df002777 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065ec e3a070ad 
12-20 10:51:03.791: INFO/DEBUG(28): #00 bef065f0 00000000 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065f4 ac06fc10 /system/lib/libsgl.so 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065f8 bef06647 [stack] 
12-20 10:51:03.791: INFO/DEBUG(28):  bef065fc 00000001 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06600 00000070 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06604 afe0ea00 /system/lib/libc.so 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06608 00299b00 [heap] 
12-20 10:51:03.801: INFO/DEBUG(28):  bef0660c afe0ed94 /system/lib/libc.so 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06610 00299b00 [heap] 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06614 000001b4 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06618 000000dc 
12-20 10:51:03.801: INFO/DEBUG(28):  bef0661c 00002bcc 
12-20 10:51:03.801: INFO/DEBUG(28):  bef06620 bef06670 [stack] 
12-20 10:51:03.811: INFO/DEBUG(28):  bef06624 afe0b70f /system/lib/libc.so 
12-20 10:51:03.811: INFO/DEBUG(28):  bef06628 afe39dd4 /system/lib/libc.so 
12-20 10:51:03.811: INFO/DEBUG(28):  bef0662c 00299b00 [heap] 
12-20 10:51:03.811: INFO/DEBUG(28):  bef06630 00299ae0 [heap] 
12-20 10:51:03.811: INFO/DEBUG(28):  bef06634 00299ac0 [heap] 
12-20 10:51:04.661: DEBUG/Zygote(30): Process 238 terminated by signal (11) 
12-20 10:51:04.671: INFO/ActivityManager(53): Process com. (pid 238) has died. 
12-20 10:51:04.691: INFO/WindowManager(53): WIN DEATH: Window{43899ae8 
12-20 10:51:04.701: INFO/WindowManager(53): WINDOW DIED during motion dispatch: 
12-20 10:51:04.761: WARN/UsageStats(53): Unexpected resume of com.android.launcher while already resumed in 
12-20 10:51:04.791: WARN/WindowManager(53): Requested window [email protected] does not exist 
12-20 10:51:04.791: WARN/WindowManager(53): java.lang.RuntimeException 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService.windowForClientLocked(WindowManagerService.java:7767) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService.windowForClientLocked(WindowManagerService.java:7759) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService.removeWindow(WindowManagerService.java:1359) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService.dispatchPointer(WindowManagerService.java:4078) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService.access$1200(WindowManagerService.java:127) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService$InputDispatcherThread.process(WindowManagerService.java:5356) 
12-20 10:51:04.791: WARN/WindowManager(53):  at com.android.server.WindowManagerService$InputDispatcherThread.run(WindowManagerService.java:5264) 
12-20 10:51:04.832: WARN/InputManagerService(53): Got RemoteException sending setActive(false) notification to pid 238 uid 10023 

답변

0

이는 네이티브 코드의 크래시이므로 플랫폼 버그로 간주됩니다. 매우 유사한 스택 트레이스는 버그 리포트 74682535에 나타납니다.

당신은 상당히 맹목적으로 해결 방법을 찾아야 할까 두렵습니다. 우선, beginRecording()과 endRecording() 사이에서 얼마나 많은 시간을 Canvas에 그리나요? 일반적인 직렬화 파일의 크기는 어느 정도입니까?

+0

캔버스에 그리는 횟수는 10에서 수백까지 다양합니다. 언제든지 사진을 읽으려고 할 때마다 충돌이 발생하며 성공하지 못합니다. 약 1000bbytes에서 약 30000byte의 사진. – ab11

+0

캔버스에 첨부 된 비트 맵의 ​​크기는 얼마입니까? 작은 재 프로젝트를 게시 할 수 있습니까? –

관련 문제