我在应用程序中点击按钮时会遇到以下错误:
A/libc: Fatal signal 11 (SIGSEGV) at 0x00000018 (code=1), thread 11024
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000018
eax 00000000 ebx b7d117e8 ecx 00000001 edx b84242d8
esi b84242d8 edi 00000000
xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
eip b7b92bbc ebp bf844ca8 esp bf844c70 flags 00010286
backtrace:
#00 pc 000acbbc /system/lib/libskia.so (SkPath::SkPath(SkPath const&)+76)
#01 pc 000ae775 /system/lib/libandroid_runtime.so (android::SkPathGlue::init2(_JNIEnv*, _jobject*, SkPath*)+53)
#02 pc 0001aaa0 /system/lib/libdvm.so (dvmPlatformInvoke+80)
#03 pc 00060408 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+232)
#04 pc 00049a51 /system/lib/libdvm.so (dvmCheckCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+65)
#05 pc 000c53c8 /system/lib/libdvm.so
#06 pc 00028ff6 /system/lib/libdvm.so (dvmMterpStd(Thread*)+70)
#07 pc 000261c0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+160)
#08 pc 00090ada /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+938)
#09 pc 000a1a5a /system/lib/libdvm.so (Dalvik_java_lang_reflect_Method_invokeNative(unsigned int const*, JValue*)+282)
#10 pc 000c53c8 /system/lib/libdvm.so
#11 pc 00028ff6 /system/lib/libdvm.so (dvmMterpStd(Thread*)+70)
#12 pc 000261c0 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+160)
#13 pc 00091139 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, char*)+601)
#14 pc 0006231a /system/lib/libdvm.so (CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+106)
#15 pc 000421f4 /system/lib/libdvm.so (Check_CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+436)
#16 pc 00051dba /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+42)
#17 pc 00053029 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+969)
#18 pc 000011f7 /system/bin/app_process (main+599)
#19 pc 00016e7f /system/lib/libc.so (__libc_init+95)
这就是我所得到的,并且在我的stacktrace中的应用程序中没有方法调用。因此,很难弄清是什么原因导致了这次崩溃。有很多与此相似的堆叠问题,但并非完全如此。
我在这里记录了这一点,以便可以帮助有人遇到此确切错误的人。
如果仔细观察,则错误发生在Skia库中的SkPath
中的本机库中。那是我的第一个也是唯一的线索。因此,我在引用Path
的每个语句上提出了一个调试点。我终于弄清楚是什么原因造成了这个问题。这是以下行:
final Path path = new Path(oldPath);
这崩溃了,因为oldPath
是null
。因此崩溃。