将Android APK从本机架构升级到非本机架构会导致64位设备崩溃

时间:2016-03-01 18:51:57

标签: android 64-bit android-6.0-marshmallow

我在Play商店中有一个生产APK,它使用的是第三方本机库。我在 jniLibs 目录中有3个体系结构,即 armeabi armeabi-v7a x86

我最近更新了构建并使用本机代码删除了库(因为我不再需要它)。但令我惊讶的是,我在更新应用程序后立即观察到64位设备上的随机崩溃。

以下是受影响的主要设备:

  • 运行Android 6.0(Marshmallow)的所有64位设备 - Nexus 5X,Nexus 6P,HTC One M9,LG G4,Moto X Pure Edition
  • 运行Android 5.1(Lollipop)的三星Galaxy S6系列

以下是Android 6.0上的崩溃跟踪:

Build fingerprint: 'htc/himauhl_htc_europe/htc_himauhl:6.0/MRA58K/671758.12:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 23807, tid: 23971, name: Chrome_InProcGp  >>> com.my.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x5594d38d40
    x0   0000005594534d40  x1   0000005594535710  x2   0000000000000000  x3   0000000000002460
    x4   00000055945371a0  x5   0000000000804000  x6   0000000000000000  x7   0000007f3ff19e58
    x8   0000000000000000  x9   0000005594534db0  x10  0000008400804000  x11  0000000000804000
    x12  0000005594d38d40  x13  0000000000000130  x14  0000000000000000  x15  00000000000009d0
    x16  0000007f750f34a8  x17  0000007f74d386e4  x18  0000007f3ff19e58  x19  0000000000000a48
    x20  0000005593d7eaa0  x21  0000000000000001  x22  0000005594534d40  x23  0000000000000001
    x24  0000000000000000  x25  00000000000007b4  x26  00000000000009d0  x27  0000007f74f1ecb8
    x28  0000005594535710  x29  0000007f3ff19ab0  x30  0000007f74d38de0
    sp   0000007f3ff19aa0  pc   0000007f74d38734  pstate 0000000060000000

backtrace:
    #00 pc 0000000000cef734  /system/vendor/lib64/libllvm-glnext.so (ShaderObjects::adjustSymbolPointers(char*, GLSL_SYMBOL*)+80)
    #01 pc 0000000000cefddc  /system/vendor/lib64/libllvm-glnext.so (ShaderObjects::loadProgramBinary(CompilerContext*, void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+812)
    #02 pc 0000000000c71e3c  /system/vendor/lib64/libllvm-glnext.so (CompilerContext::loadProgramBinary(void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+176)
    #03 pc 0000000000d05868  /system/vendor/lib64/libllvm-glnext.so (QGLCLoadProgramBinary(void*, void*, unsigned long, QGLC_LINKPROGRAM_RESULT*)+68)
    #04 pc 00000000001a4af0  /system/vendor/lib64/egl/libGLESv2_adreno.so (EsxShaderCompiler::LoadProgramBinaryBlob(EsxContext*, EsxProgram*, void const*, unsigned long, EsxInfoLog*)+144)
    #05 pc 000000000018d104  /system/vendor/lib64/egl/libGLESv2_adreno.so (EsxProgram::LoadProgramBinary(EsxContext*, unsigned int, void const*, int)+164)
    #06 pc 000000000012e608  /system/vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::GlProgramBinary(unsigned int, unsigned int, void const*, int)+136)
    #07 pc 0000000000111a44  /system/vendor/lib64/egl/libGLESv2_adreno.so (glProgramBinary+68)
    #08 pc 00000000008372b4  /data/app/com.google.android.webview-1/lib/arm64/libwebviewchromium.so

这是Samsung S6设备(Android 5.1)上的崩溃跟踪

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/zerofltexx/zeroflte:5.1.1/LMY47X/G920FXXU3COI9:user/release-keys'
Revision: '11'
ABI: 'arm64'
pid: 19133, tid: 19323, name: AsyncTask #8  >>> com.my.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c
    x0   0000000033441be0  x1   0000000000668837  x2   0000000000000068  x3   0000000000000006
    x4   0000000032d694c0  x5   0000000002cf95e0  x6   0000000033441be0  x7   0000007f831c8800
    x8   00000000711c5508  x9   0000000000000000  x10  0000000033441be0  x11  0000007f831c8610
    x12  0000000000000002  x13  00000000033263c0  x14  0000000002cf95e0  x15  0000000033441008
    x16  000000003fffffff  x17  000000000000005d  x18  0000007f2fcaf000  x19  000000000000005f
    x20  0000000033441be0  x21  0000000000000000  x22  0000000000000003  x23  0000000033441ac0
    x24  000000008a00af80  x25  0000000033441ba0  x26  0000000033441b20  x27  0000000033441b40
    x28  0000000033441b60  x29  0000000000000001  x30  0000007f72beb9ac
    sp   0000007f623ff450  pc   0000007f72beb9b0  pstate 0000000020000000

backtrace:
    #00 pc 00000000002e89b0  /data/dalvik-cache/arm64/data@app@com.my.app-2@base.apk@classes.dex
    #01 pc 00000000002e89a8  /data/dalvik-cache/arm64/data@app@com.my.app-2@base.apk@classes.dex

可能是什么问题以及如何纠正这个问题?

0 个答案:

没有答案