更新到棉花糖后,所有arm64设备上的应用程序在启动时崩溃.如何仅使用pc偏移进行调试



我的应用程序在启动时为所有Android棉花糖arm64设备崩溃。用户以前在同一台设备上使用棒棒糖上的应用程序,但在设备更新为棉花糖后开始报告这些崩溃。32位设备不受影响。坠机报告都是这样的:

ABI: 'arm64'
pid: 3531, tid: 3531, name: ompany.myapp  >>> com.mycompany.myapp <<<
signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x7f796d9370
    x0   0000000013087000  x1   0000007f8815da00  x2   0000000000000002  x3   0000000000000004
    x4   b42e90dfe44ab496  x5   b42e90dfe44ab496  x6   0000000000000000  x7   00000000019b7af0
    x8   0000000013087000  x9   0000007f87713000  x10  0000000000000601  x11  000000001308700c
    x12  0000000000002000  x13  0000000000002000  x14  000000006fb18428  x15  00000000013cd010
    x16  0000000000000000  x17  0000000000002000  x18  0000005594f27e90  x19  0000000000000003
    x20  0000000013087000  x21  0000007f75e00098  x22  00000000130d6e20  x23  0000000000000601
    x24  0000000000000000  x25  0000000000000001  x26  0000000000000000  x27  0000000000000000
    x28  0000000000000000  x29  00000000130d6e20  x30  0000007f796d9350
    sp   0000007ff8a7bc60  pc   0000007f796d9370  pstate 0000000080000000
backtrace:
    #00 pc 0000000000929370  /data/app/com.mycompany.myapp-1/oat/arm64/base.odex (offset 0x486000)
    #01 pc 000000000092934c  /data/app/com.mycompany.myapp-1/oat/arm64/base.odex (offset 0x486000)

偏移量0x486000在所有报告中都是一致的。

我可以使用这个偏移量来调试崩溃吗?有关该应用程序的更多信息:

  • 没有本机代码(都是Java)
  • 如果我解压缩apk,目录如下(没有lib目录)

    [res][assets][META-INF]classes.dexresources.arscAndroidManifest.xml

  • 我读过一些abi过滤技巧,有些人在构建中使用exclude arm64库,迫使系统加载32位库,但我没有本地代码,也没有库目录。

我的猜测是,我可以用这个偏移量做点什么,但我不确定从哪里开始。

我的应用程序在arm64设备(Nexus 9)中崩溃。我尝试了这个答案,它帮助了我。现在它在我迄今为止测试过的所有设备上运行。

最新更新