【问题标题】:App randomly crashes with A/libc: fatal signal 11应用程序因 A/libc 随机崩溃:致命信号 11
【发布时间】:2013-12-10 03:03:12
【问题描述】:

所以我的应用程序开始随机崩溃,并出现致命信号 11(在随机活动中,有些人似乎比其他人更频繁地这样做,但我还没有找到模式)。我不知道为什么,它以前没有这样做,而且我的代码没有太大变化,主要是,相同的代码对我的同事工作正常。我厌倦了修复它:

  • 重新启动我的机器
  • 三次检查我的代码中的所有内容
  • 运行 gradlew clean 并重建一切
  • 从 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)

更新:

如果我使用 arm 图像,问题似乎出在 x86 图像(AVD 和 genymotion)上,一切似乎都正常。当我有更多时间时,我会尝试更深入地挖掘并提交错误报告。现在看来我必须对缓慢缓慢的手臂图像有耐心:/

【问题讨论】:

  • 可能是记性不好。曾几何时,我有一个狡猾的 ram,大型编译有时会工作,有时会因信号 11 而崩溃。如果你可以更改 RAM,它可能值得一试。或者运行某种内存测试器。
  • 感谢您的建议,我测试了所有内容,但似乎我的硬件正常。但看起来问题出在 x86 图像上。
  • 我在 x64 也有同样的问题
  • 你找到解决办法了吗?

标签: android libc


【解决方案1】:

如果您使用 gson 并序列化 android.location.Location 对象,请小心,我收到此错误并修复了它,将 android.location.Location 替换为我的 Location 包装器。

更新:2019 年 6 月 3 日

类似:

data class Location(val latitude: Double, val longitude: Double)

【讨论】:

    【解决方案2】:

    从此链接: http://www.jpct.net/forum2/index.php?topic=3987.0

    打开AndroidManifest.xml,添加android:allowClearUserData="true"标签到应用节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2012-07-16
      相关资源
      最近更新 更多