2013-01-13 3 views
1

정상적으로 실행하면 내 코드가 정상적으로 작동하지만이 단위 테스트를 실행할 때이 오류가 콘솔에 인쇄됩니다. 이 단위 테스트에서 내가 뭘 잘못하고있어?'Process crashed'으로 인해 계측 실행이 실패했습니다.

테스트 실행 실패 : '공정 충돌'로 인해 계측 실행에 실패했습니다.

로그 캣

01-13 03:52:12.560: I/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** 

*** *** *** 
01-13 03:52:12.560: I/DEBUG(31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys' 
01-13 03:52:12.560: I/DEBUG(31): pid: 446, tid: 452 >>> com.frozendragon.Sceptrum <<< 
01-13 03:52:12.560: I/DEBUG(31): signal 11 (SIGSEGV), fault addr 00000028 
01-13 03:52:12.560: I/DEBUG(31): r0 00000000 r1 0026148c r2 00000000 r3 0026148c 
01-13 03:52:12.560: I/DEBUG(31): r4 00260bd8 r5 002614cc r6 00000000 r7 00000000 
01-13 03:52:12.560: I/DEBUG(31): r8 00000001 r9 00000000 10 00000000 fp 00000000 
01-13 03:52:12.560: I/DEBUG(31): ip 00000000 sp 485c1b38 lr 00000000 pc ab166044 cpsr 60000010 
01-13 03:52:12.606: I/DEBUG(31):   #00 pc 00066044 /system/lib/libskia.so 
01-13 03:52:12.606: I/DEBUG(31):   #01 pc 00068bb4 /system/lib/libskia.so 
01-13 03:52:12.606: I/DEBUG(31):   #02 pc 00064e68 /system/lib/libskia.so 
01-13 03:52:12.606: I/DEBUG(31):   #03 pc 0004b1ea /system/lib/libandroid_runtime.so 
01-13 03:52:12.606: I/DEBUG(31):   #04 pc 00013974 /system/lib/libdvm.so 
01-13 03:52:12.606: I/DEBUG(31):   #05 pc 0003ddb4 /system/lib/libdvm.so 
01-13 03:52:12.606: I/DEBUG(31):   #06 pc 00037186 /system/lib/libdvm.so 
01-13 03:52:12.606: I/DEBUG(31):   #07 pc 00018714 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #08 pc 0001e8c4 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #09 pc 0001d790 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #10 pc 0005408e /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #11 pc 0005bde2 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #12 pc 00018714 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #13 pc 0001e8c4 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #14 pc 0001d790 /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #15 pc 00053eec /system/lib/libdvm.so 
01-13 03:52:12.616: I/DEBUG(31):   #16 pc 00054102 /system/lib/libdvm.so 
01-13 03:52:12.626: I/DEBUG(31):   #17 pc 0004825a /system/lib/libdvm.so 
01-13 03:52:12.626: I/DEBUG(31):   #18 pc 0001103c /system/lib/libc.so 
01-13 03:52:12.626: I/DEBUG(31):   #19 pc 00010b20 /system/lib/libc.so 
01-13 03:52:12.626: I/DEBUG(31): code around pc: 
01-13 03:52:12.626: I/DEBUG(31): ab166024 e59d001c e3a01000 e5c010a8 eaffff95 
01-13 03:52:12.626: I/DEBUG(31): ab166034 e1d4e2f4 e1d472f6 e5946004 e197200e 
01-13 03:52:12.626: I/DEBUG(31): ab166044 e5969028 e596a024 0a00002e e59db00c 
01-13 03:52:12.626: I/DEBUG(31): ab166054 e2848028 e1a0c008 e8bb000f e8ac000f 
01-13 03:52:12.626: I/DEBUG(31): ab166064 e8bb000f e8ac000f e89b0003 e26eb000 
01-13 03:52:12.626: I/DEBUG(31): code around lr: 
01-13 03:52:12.626: I/DEBUG(31): stack: 
01-13 03:52:12.626: I/DEBUG(31):  485c1af8 43480000 /data/dalvik-cache/[email protected]@[email protected] 
01-13 03:52:12.626: I/DEBUG(31):  485c1afc 002613c8 [heap] 
01-13 03:52:12.626: I/DEBUG(31):  485c1b00 485c1be8 
01-13 03:52:12.626: I/DEBUG(31):  485c1b04 00261020 [heap] 
01-13 03:52:12.626: I/DEBUG(31):  485c1b08 485c1be8 
01-13 03:52:12.626: I/DEBUG(31):  485c1b0c ab165be8 /system/lib/libskia.so 
01-13 03:52:12.626: I/DEBUG(31):  485c1b10 00000001 
01-13 03:52:12.636: I/DEBUG(31):  485c1b14 00000007 
01-13 03:52:12.636: I/DEBUG(31):  485c1b18 420d1a98 /dev/ashmem/dalvik-LinearAlloc (deleted) 
01-13 03:52:12.636: I/DEBUG(31):  485c1b1c 80846dad /system/lib/libdvm.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b20 00000024 
01-13 03:52:12.636: I/DEBUG(31):  485c1b24 00231b78 [heap] 
01-13 03:52:12.636: I/DEBUG(31):  485c1b28 46002d90 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
01-13 03:52:12.636: I/DEBUG(31):  485c1b2c 8083d9b9 /system/lib/libdvm.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b30 df002777 
01-13 03:52:12.636: I/DEBUG(31):  485c1b34 e3a070ad 
01-13 03:52:12.636: I/DEBUG(31): #00 485c1b38 46002d90 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
01-13 03:52:12.636: I/DEBUG(31):  485c1b3c 8082e5b3 /system/lib/libdvm.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b40 00000000 
01-13 03:52:12.636: I/DEBUG(31):  485c1b44 002614a4 [heap] 
01-13 03:52:12.636: I/DEBUG(31):  485c1b48 00004000 
01-13 03:52:12.636: I/DEBUG(31):  485c1b4c ffffffff 
01-13 03:52:12.636: I/DEBUG(31):  485c1b50 00000000 
01-13 03:52:12.636: I/DEBUG(31):  485c1b54 00261020 [heap] 
01-13 03:52:12.636: I/DEBUG(31):  485c1b58 485c1be8 
01-13 03:52:12.636: I/DEBUG(31):  485c1b5c 002316e8 [heap] 
01-13 03:52:12.636: I/DEBUG(31):  485c1b60 46002d90 /dev/ashmem/mspace/dalvik-heap/2 (deleted) 
01-13 03:52:12.636: I/DEBUG(31):  485c1b64 ad32e451 /system/lib/libandroid_runtime.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b68 ad374d50 /system/lib/libandroid_runtime.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b6c ad34bf0f /system/lib/libandroid_runtime.so 
01-13 03:52:12.636: I/DEBUG(31):  485c1b70 485c1f00 
01-13 03:52:12.636: I/DEBUG(31):  485c1b74 485c1be8 
01-13 03:52:12.646: I/DEBUG(31):  485c1b78 00261020 [heap] 
01-13 03:52:12.646: I/DEBUG(31):  485c1b7c ab165b68 /system/lib/libskia.so 
01-13 03:52:12.646: I/DEBUG(31):  485c1b80 485c1be8 
01-13 03:52:12.646: I/DEBUG(31):  485c1b84 485c1c0c 
01-13 03:52:12.646: I/DEBUG(31):  485c1b88 485c1bb0 
01-13 03:52:12.646: I/DEBUG(31):  485c1b8c 00261020 [heap] 
01-13 03:52:12.646: I/DEBUG(31):  485c1b90 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1b94 00000001 
01-13 03:52:12.646: I/DEBUG(31):  485c1b98 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1b9c 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1ba0 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1ba4 ab168bb8 /system/lib/libskia.so 
01-13 03:52:12.646: I/DEBUG(31): #01 485c1ba8 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1bac 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1bb0 000013fc 
01-13 03:52:12.646: I/DEBUG(31):  485c1bb4 000001b8 
01-13 03:52:12.646: I/DEBUG(31):  485c1bb8 485c1c68 
01-13 03:52:12.646: I/DEBUG(31):  485c1bbc 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1bc0 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1bc4 00000000 
01-13 03:52:12.646: I/DEBUG(31):  485c1bc8 00261020 [heap] 
01-13 03:52:12.646: I/DEBUG(31):  485c1bcc 433f6c68 /data/dalvik-cache/[email protected]@[email protected] 
01-13 03:52:12.646: I/DEBUG(31):  485c1bd0 8086caa4 /system/lib/libdvm.so 
01-13 03:52:12.646: I/DEBUG(31):  485c1bd4 80870eea /system/lib/libdvm.so 
01-13 03:52:12.646: I/DEBUG(31):  485c1bd8 000013fc 
01-13 03:52:12.646: I/DEBUG(31):  485c1bdc 80887fc4 /system/lib/libdvm.so 
01-13 03:52:12.646: I/DEBUG(31):  485c1be0 485c1f00 
01-13 03:52:12.656: I/DEBUG(31):  485c1be4 485c1c0c 
01-13 03:52:12.656: I/DEBUG(31):  485c1be8 00261020 [heap] 
01-13 03:52:12.656: I/DEBUG(31):  485c1bec 00000003 
01-13 03:52:12.656: I/DEBUG(31):  485c1bf0 00000000 
01-13 03:52:12.656: I/DEBUG(31):  485c1bf4 485c1c68 
01-13 03:52:12.656: I/DEBUG(31):  485c1bf8 43957d20 
01-13 03:52:12.656: I/DEBUG(31):  485c1bfc 43957d0c 
01-13 03:52:12.656: I/DEBUG(31):  485c1c00 00231b78 [heap] 
01-13 03:52:12.656: I/DEBUG(31):  485c1c04 ab164e6c /system/lib/libskia.so 
01-13 03:52:13.006: I/BootReceiver(73): Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE) 
01-13 03:52:13.026: D/Zygote(33): Process 446 terminated by signal (11) 
01-13 03:52:13.076: D/dalvikvm(73): GC_FOR_MALLOC freed 4012 objects/829984 bytes in 66ms 
01-13 03:52:13.076: I/ActivityManager(73): Process com.frozendragon.Sceptrum (pid 446) has died. 
01-13 03:52:13.076: W/ActivityManager(73): Crash of app com.frozendragon.Sceptrum running instrumentation ComponentInfo{com.frozendragon.Sceptrum.test/android.test.InstrumentationTestRunner} 
01-13 03:52:13.076: I/ActivityManager(73): Force stopping package com.frozendragon.Sceptrum uid=10028 
01-13 03:52:13.087: D/AndroidRuntime(440): Shutting down VM 
01-13 03:52:13.087: D/jdwp(440): Got wake-up signal, bailing out of select 
01-13 03:52:13.087: D/dalvikvm(440): Debugger has detached; object registry had 1 entries 
01-13 03:54:28.720: D/SntpClient(73): request time failed: java.net.SocketException: Address family not supported by protocol 

단위 테스트 코드

Point ImagesPos, SheetSize, CurrentSprite, Size; 
    protected void setUp() throws Exception { 
     super.setUp(); 
     gameEngine = new GameEngine(400, 800); 
     canvas = new Canvas(); 
     ImagesPos = new Point(200, 200); 
     SheetSize = new Point(9, 9); 
     CurrentSprite = new Point(2, 3); 
     Size = new Point(200, 400); 
     Context context = getContext(); 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inScaled = true; 
     animationbmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.foot_animation_spritesheet9x9, options); 
    } 
    public void testDrawAnimationObjectCanvasBitmapIntIntPointPointFloat() { 
     float rot = 45f; 
     gameEngine.DrawAnimationObject(canvas, animationbmp, ImagesPos.x, ImagesPos.y, SheetSize, CurrentSprite, rot); 
     animationbmp.recycle(); 
     gameEngine.DrawAnimationObject(canvas, animationbmp, ImagesPos.x, ImagesPos.y, SheetSize, CurrentSprite, rot); 
     restorebmp(); 
    } 
private void restorebmp() 
{ 
    if(animationbmp.isRecycled() == false) 
    { 
     animationbmp.recycle(); 
    } 
    Context context = getContext(); 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inScaled = true; 
    animationbmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.foot_animation_spritesheet9x9, options); 
} 
+0

시스템 라이브러리가 응용 프로그램을 작동하지 않을 것으로 생각합니다. 이에 대해 아무 것도 할 수 없으며 http://code.google.com/p/android/issues/list에 문제를 신고하십시오. 에뮬레이터입니까? 이 경우 새로운 이미지를 사용하십시오. – auselen

답변

2

당신의 코드는 비트 맵을 재활용하고 즉시 다시 사용하려고 나타납니다. 메모리가 현재 유효하지 않으므로 비트 맵 객체를 다시 만들어야합니다.

+0

이것은 obiouse가 아닐지도 모르지만 그 메소드가 재활용 되어야만하는 이미지를 처리 ​​할 수 ​​있는지 테스트하려했습니다. 디버그에서 줄 단위로 코드를 실행하면 잘 작동합니다. 이걸 어떻게 테스트 할 수 있니? – Frozendragon

+0

글쎄, DrawAnimationObject가 무엇을하는지 확실히 모르겠다. 여전히 Bitmap 클래스의 자바 전용 부분에 액세스 할 수 있어야한다. 예를 들어, isRecycled()는 여전히 비트 맵에서 원시 이미지 데이터에 액세스하려고 시도하기 전에 DrawAnimationObject에서 검사 할 수 있습니다. 즉, Bitmap의 소스를 보면 네이티브 호출을 수행하는 메서드를 호출하지 않도록하십시오. 나는 디버그 모드에서 우연히 만났을 것으로 생각된다. 기본 비트 맵 코드는 더 이상 비트 맵에 할당되지 않은 JVM 내부의 메모리에 액세스합니다. –

1

C++ 라이브러리는 역 참조 메모리 주소 × 00 ... (28)에 시도하여 추락했다. 그래픽 하위 시스템을 다루는 안드로이드의 일부인 libskia.so와 비슷합니다. 이 메모리 주소는 배열의 N 번째 항목을보고 있었지만 배열이 null이라는 것을 의미합니다. 나는 드로잉 호출에 전달되는 null 포인터를 찾거나 libskia 오류를 검색하는 심각한 Google을 수행합니다. 나는 그 이상으로 도울 수는 없지만 그 시작은 두렵다. 그 재활용 된 후

gameEngine.DrawAnimationObject(canvas, animationbmp, ImagesPos.x, ImagesPos.y, SheetSize, CurrentSprite, rot); 
    ////////////////////////////////////////////// 
    animationbmp.recycle(); //Offending line here/ 
    ////////////////////////////////////////////// 
    gameEngine.DrawAnimationObject(canvas, animationbmp, ImagesPos.x, ImagesPos.y, SheetSize, CurrentSprite, rot); 

당신은 비트 맵을 사용하지 않아야합니다 :

관련 문제