在运行 Android 4.3 的设备上,我的应用程序发生严重崩溃。有问题的代码可以在 Android 4.2 及更低版本上完美运行。
我已将错误追溯到对mPackageManager.getDrawable()
. 每隔一段时间,调用此函数会导致我的应用程序被终止(没有引发异常)。有谁知道可能是什么原因造成的?
输出如下(完整日志在这里):
08-17 12:03:37.036: I/DEBUG(177): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-17 12:03:37.036: I/DEBUG(177): Build fingerprint:'google/razor/flo:4.3/JSS15J/748593:user/release-keys'
08-17 12:03:37.036: I/DEBUG(177): Revision: '0'
08-17 12:03:37.036: I/DEBUG(177): pid: 5687, tid: 5812, name: AsyncTask #1 >>> com.chrislacy.actionlauncher.pro <<<
08-17 12:03:37.036: I/DEBUG(177): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00005d68
08-17 12:03:37.186: I/DEBUG(177): r0 74918cd0 r1 00005d68 r2 000001a8 r3 00000000
08-17 12:03:37.186: I/DEBUG(177): r4 0000007a r5 0000007a r6 74918eb8 r7 0000007a
08-17 12:03:37.186: I/DEBUG(177): r8 00005d68 r9 0000007a sl 00000000 fp 00000000
08-17 12:03:37.186: I/DEBUG(177): ip 4046dd38 sp 7aa261a0 lr 402bff88 pc 400a8e00 cpsr 28030010
... (snip)
08-17 12:03:37.196: I/DEBUG(177): backtrace:
08-17 12:03:37.196: I/DEBUG(177): #00 pc 0001ce00 /system/lib/libc.so (memcpy+120)
08-17 12:03:37.196: I/DEBUG(177): #01 pc 00074f84 /system/lib/libskia.so
08-17 12:03:37.196: I/DEBUG(177): #02 pc 000744f8 /system/lib/libskia.so (SkBitmapProcShader::shadeSpan(int, int, unsigned int*, int)+52)
08-17 12:03:37.196: I/DEBUG(177): #03 pc 00085a70 /system/lib/libskia.so (SkARGB32_Shader_Blitter::blitRect(int, int, int, int)+568)
08-17 12:03:37.196: I/DEBUG(177): #04 pc 000cba2c /system/lib/libskia.so (SkScan::FillIRect(SkIRect const&, SkRegion const*, SkBlitter*)+368)
08-17 12:03:37.196: I/DEBUG(177): #05 pc 000cbb24 /system/lib/libskia.so (SkScan::FillRect(SkRect const&, SkRegion const*, SkBlitter*)+152)
08-17 12:03:37.196: I/DEBUG(177): #06 pc 000cbc90 /system/lib/libskia.so (SkScan::FillRect(SkRect const&, SkRasterClip const&, SkBlitter*)+84)
08-17 12:03:37.196: I/DEBUG(177): #07 pc 0009b078 /system/lib/libskia.so (SkDraw::drawRect(SkRect const&, SkPaint const&) const+660)
08-17 12:03:37.196: I/DEBUG(177): #08 pc 0008d754 /system/lib/libskia.so (SkCanvas::drawRect(SkRect const&, SkPaint const&)+696)
08-17 12:03:37.196: I/DEBUG(177): #09 pc 0008f9ec /system/lib/libskia.so (SkCanvas::drawRectCoords(float, float, float, float, SkPaint const&)+44)
08-17 12:03:37.196: I/DEBUG(177): #10 pc 0001dc4c /system/lib/libdvm.so (dvmPlatformInvoke+112)
08-17 12:03:37.196: I/DEBUG(177): #11 pc 0004decf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
08-17 12:03:37.196: I/DEBUG(177): #12 pc 00027060 /system/lib/libdvm.so
08-17 12:03:37.196: I/DEBUG(177): #13 pc 0002b5ec /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
08-17 12:03:37.196: I/DEBUG(177): #14 pc 0005ff21 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
08-17 12:03:37.196: I/DEBUG(177): #15 pc 0005ff4b /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
08-17 12:03:37.196: I/DEBUG(177): #16 pc 00054ccb /system/lib/libdvm.so
08-17 12:03:37.196: I/DEBUG(177): #17 pc 0000ca58 /system/lib/libc.so (__thread_entry+72)
08-17 12:03:37.196: I/DEBUG(177): #18 pc 0000cbd4 /system/lib/libc.so (pthread_create+208)
... (snip)
08-17 12:03:37.516: W/ActivityManager(523): Force finishing activity com.chrislacy.actionlauncher.pro/com.chrislacy.launcher.Launcher
08-17 12:03:37.546: I/WindowState(523): WIN DEATH: Window{423d8448 u0 com.chrislacy.actionlauncher.pro/com.chrislacy.launcher.Launcher}
08-17 12:03:37.556: I/ActivityManager(523): Process com.chrislacy.actionlauncher.pro (pid 5687) has died.```