Android Marshmallow ART"无法找到dex"紧急

时间:2016-02-24 14:34:52

标签: android android-6.0-marshmallow

自2015年12月以来,我们只在运行Android 6.0和6.0.1的有限数量的设备上遇到奇怪的崩溃。其中大多数是Nexus 5.

首先从Play商店中提取崩溃日志。在int art_method.cc中,看起来某个方法到本机代码的映射失败了。也许这是汇编引发的?

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/hammerhead/hammerhead:6.0.1/MMB29Q/2480792:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 18737, tid: 18737, name: omittedapp  >>> com.omitteddomain.omittedapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'art/runtime/art_method.cc:245] Failed to find native offset for dex pc 0x58 in android.view.View com.omitteddomain.omittedapp.PlotWidget.a(android.view.ViewGroup, android.view.LayoutInflater, java.util.List)'
    r0 00000000  r1 00004931  r2 00000006  r3 b6f24b7c
    r4 b6f24b84  r5 b6f24b34  r6 00000001  r7 0000010c
    r8 b4c3f800  r9 b4c3de44  sl b361d3db  fp b4c23450
    ip 00000006  sp beb2ca90  lr b6c93b61  pc b6c95f50  cpsr 40070010

backtrace:
    #00 pc 00041f50  /system/lib/libc.so (tgkill+12)
    #01 pc 0003fb5d  /system/lib/libc.so (pthread_kill+32)
    #02 pc 0001c30f  /system/lib/libc.so (raise+10)
    #03 pc 000194c1  /system/lib/libc.so (__libc_android_abort+34)
    #04 pc 000174ac  /system/lib/libc.so (abort+4)
    #05 pc 00333971  /system/lib/libart.so (art::Runtime::Abort()+228)
    #06 pc 000f45fb  /system/lib/libart.so (art::LogMessage::~LogMessage()+2226)
    #07 pc 000f08d1  /system/lib/libart.so (art::Barrier::~Barrier()+216)
    #08 pc 0035b473  /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+162)
    #09 pc 00333a35  /system/lib/libart.so (art::Runtime::Abort()+424)
    #10 pc 000f45fb  /system/lib/libart.so (art::LogMessage::~LogMessage()+2226)
    #11 pc 000ef88b  /system/lib/libart.so (art::ArtMethod::ToNativeQuickPc(unsigned int, bool)+918)
    #12 pc 00329055  /system/lib/libart.so (art::CatchBlockStackVisitor::VisitFrame()+180)
    #13 pc 0033ccbd  /system/lib/libart.so (art::StackVisitor::WalkStack(bool)+224)
    #14 pc 0032910d  /system/lib/libart.so (art::QuickExceptionHandler::FindCatch(art::mirror::Throwable*)+92)
    #15 pc 0034a61d  /system/lib/libart.so (art::Thread::QuickDeliverException()+140)
    #16 pc 003fb7d9  /system/lib/libart.so (artThrowNullPointerExceptionFromCode+20)
    #17 pc 00a15f01  /data/app/com.omitteddomain.omittedapp-1/oat/arm/base.odex (offset 0x59d000)

据报道,类似崩溃的唯一其他事件(此处为Android ART: "Failed to find Dex offset for PC offset ...")可能与无限递归问题有关。虽然我们在同一个&#34; a&#34;中有一个无限的递归问题。方法,它已经修复了。

其他一些信息:

  1. 有问题的PlotWidget类通过第三方库向用户显示图表。购物车视图配置在上面的&#34; a&#34;方法。我们多次更改了库,但结果没有差异。

  2. 所有第三方图书馆都是最新的。

  3. 我们已经能够使用显示给受影响用户之一的相同数据来测试应用程序,而无法重现问题(作为敏感信息,我们只提供了渲染图表所需的严格数据)。

  4. 尝试重现问题的方法都失败了,配置/风味,启用/禁用了proguard,是/否等等。

  5. 该应用程序使用Android Studio 1.5进行编译,使用最新的SDK,定位API 23.在设置较低的目标API并无数次发布无用的更新之前,我想知道是否有经验和解决过的人类似的问题。

    欢迎任何建议。

0 个答案:

没有答案