android - 错误 A/libc : Fatal signal 11 (SIGSEGV) at 0x00000018 (code=1) in SkPath

标签 android android-canvas fatal-error segmentation-fault skia

当我点击应用程序中的按钮时出现以下错误:

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)

这就是我得到的全部信息,在堆栈跟踪中我的应用程序中没有方法调用。所以很难弄清楚是什么导致了这次崩溃。有很多与此类似的 stackoverflow 问题,但不完全是这个。

我在这里记录下来,这样它可以帮助遇到这个确切错误的人。

最佳答案

仔细观察,错误发生在Skia库中的SkPath中的原生库中。那是我的第一个也是唯一的线索。因此,我在每个引用 Path 的语句上放置了一个调试点。我终于弄清楚是什么导致了这个问题。这是下面一行:

final Path path = new Path(oldPath);

这是崩溃,因为 oldPathnull。因此崩溃。

关于android - 错误 A/libc : Fatal signal 11 (SIGSEGV) at 0x00000018 (code=1) in SkPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139564/

相关文章:

android - Canvas - 在 Android 上放大、移动和缩放

Android App 在创建时关闭?

PHP fatal error : Allowed memory size of 268435456 bytes exhausted

Android:进程内广播

java - 在 Android 布局 XML 中引用内部类

java - Android recyclerview 像画廊 View 吗?

android - Fatal Exception : main java. lang.RuntimeException: Unable to start activity 很多bug

android - OrmLite where 子句和 SQL 与 java.util.date 之间

Android ConcurrentModification onDraw()

android - 绘制图像时绘制外部阴影