所以我的应用程序开始随机崩溃,出现致命信号11(在随机活动中,有些人似乎比其他人做得更频繁,但我还没有找到模式)。我不知道为什么,它以前没有做过,我的代码也没有改变那么多,主要是,同样的代码对我的同事来说很好。我想做什么来修复它:
重新启动我的机器
三次检查代码中的所有内容
把Gradlew清理干净重建一切
从VCS上签出一个旧版本(我确信有效)
从VCS签出旧版本到全新项目
使用不同版本的Android(4.1-4.3)
使用不同的模拟器(常规avd和genymotion)
坦白地说,我完全没主意了,我的机器没有变化(甚至没有Windows更新),代码没有重大变化(为了安全起见,我尝试还原),JVM没有变化,Android Studio没有更新,错误完全是随机的。
谢谢你的建议…
坠机报告:
.debug A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x97e2c9c4 (code=2), thread 1768 (.smartpos.debug)
11-25 12:37:20.092 103-103/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-25 12:37:20.092 103-103/? I/DEBUG﹕ Build fingerprint: 'generic/vbox86p/vbox86p:4.3/JLS36G/eng.buildbot.20131113.022613:userdebug/test-keys'
11-25 12:37:20.092 103-103/? I/DEBUG﹕ Revision: '0'
11-25 12:37:20.092 103-103/? I/DEBUG﹕ pid: 1768, tid: 1768, name: .smartpos.debug >>> .debug <<<
11-25 12:37:20.092 103-103/? I/DEBUG﹕ signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 97e2c9c4
11-25 12:37:20.196 103-103/? I/DEBUG﹕ eax 97e2c034 ebx b6191ccc ecx b8aea200 edx 00000264
11-25 12:37:20.200 103-103/? I/DEBUG﹕ esi a56b0b58 edi a56b0b58
11-25 12:37:20.200 103-103/? I/DEBUG﹕ xcs 00000073 xds 0000007b xes 0000007b xfs 00000000 xss 0000007b
11-25 12:37:20.200 103-103/? I/DEBUG﹕ eip b60ae6fc ebp 97e2c000 esp bfe452e0 flags 00210282
11-25 12:37:20.200 103-103/? I/DEBUG﹕ backtrace:
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #00 pc 000de6fc /system/lib/libdvm.so (dvmResolveString+124)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #01 pc 0002a3d7 /system/lib/libdvm.so
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #02 pc 00277767 /dev/ashmem/dalvik-heap (deleted)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #03 pc 0003b322 /system/lib/libdvm.so (dvmMterpStd(Thread*)+66)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #04 pc 000369e9 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+217)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #05 pc 000b9f62 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+1634)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #06 pc 000ce9e0 /system/lib/libdvm.so (Dalvik_java_lang_reflect_Method_invokeNative(unsigned int const*, JValue*)+288)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #07 pc 00173058 /system/lib/libdvm.so
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #08 pc 00005eff <unknown>
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #09 pc 0003b322 /system/lib/libdvm.so (dvmMterpStd(Thread*)+66)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #10 pc 000369e9 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+217)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #11 pc 000bacf7 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, char*)+759)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #12 pc 0007774d /system/lib/libdvm.so (CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+109)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #13 pc 0005d3ea /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+42)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #14 pc 0005eaac /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+924)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #15 pc 00001017 /system/bin/app_process (main+567)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #16 pc 0000cedc /system/lib/libc.so (__libc_init+108)
11-25 12:37:20.200 103-103/? I/DEBUG﹕ #17 pc 00000a91 /system/bin/app_process (_start+97)
更新:
似乎问题出在x86图像上(包括avd和genymotion),如果我使用arm图像,一切似乎都正常。当我有更多的时间时,我会努力深入研究并提交一个错误报告。现在看来,我必须耐心对待慢手臂的图像:/
最佳答案
如果使用gson并序列化android.location.Location
对象,请小心,我得到了这个错误,并用onandroid.location.Location
包装器替换了Location
。
更新日期:2019年6月3日
类似于:
data class Location(val latitude: Double, val longitude: Double)