捕获本机崩溃:信号7(SIGBUS),代码2(BUS_ADRERR)

时间:2017-10-14 11:59:57

标签: android crash crashlytics

在我的Google Play控制台上,我收到了一些申请报告(仅供参考,也使用了JNI)。这是回溯:

  native: pc 00000000002c0536  /system/lib/libart.so (_ZN3artL16Unsafe_putDoubleEP7_JNIEnvP8_jobjectS3_xd+31)
  native: pc 0000000073bb9609  /data/dalvik-cache/arm/system@framework@boot.oat

我无法通过任何崩溃报告系统(谷歌分析,Crashlytics)捕获它,当然也不知道如何重现它。

有趣的是,受影响最大的设备来自摩托罗拉Moto G系列和中年三星Galaxy's。

问题似乎是在我的应用程序之外,但我仍然想知道我的代码的哪一部分导致它,所以我可以尝试一种解决方法,使它也可以在这些设备上运行。 没有物理设备可以发现问题吗?

Gradle.build

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 294
        versionName "1.6.268"
        vectorDrawables.useSupportLibrary = true
        externalNativeBuild {
            ndkBuild {
                arguments "APP_STL:=gnustl_static"
            }
        }
    }

    dexOptions {
        javaMaxHeapSize "12g"
        jumboMode true
    }

    applicationVariants.all { variant ->
        variant.resValue "string", "versionName", variant.versionName
    }

    buildTypes {
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig
            externalNativeBuild {
                ndkBuild {
                    cFlags "-DDEBUG_MODE=0"
                }
            }
        }
        debug {
            debuggable true
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            externalNativeBuild {
                ndkBuild {
                    cFlags "-DDEBUG_MODE=1"
                }
            }
        }
    }

    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }
    return void
}

Gradle版本是2.3.3,也是Android Studio 2.3.3。

在Google Play控制台的崩溃报告部分中挖掘,我发现它显示完整的本机崩溃数据:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
LineageOS Version: 'unknown'
Build fingerprint: 'samsung/j5lteub/j5lte:6.0.1/MMB29M/J500MUBU1BQH2:user/release-keys'
Revision: '5'
ABI: 'arm'
pid: 10935, tid: 11080, name: glide-source-th  >>> com. <<<
signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0x902d8000
    r0 a4b3a670  r1 9385e5ec  r2 902d8000  r3 00000000
    r4 00000075  r5 70edc0cc  r6 902d8000  r7 00000000
    r8 00000063  r9 94903f00  sl 0000001b  fp 00000075
    ip b0052537  sp 9385e5e0  lr 73cc09a3  pc b0052536  cpsr 600d0030

backtrace:
    #00 pc 002c0536  /system/lib/libart.so (_ZN3artL16Unsafe_putDoubleEP7_JNIEnvP8_jobjectS3_xd+31)
    #01 pc 73cc09a1  /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x283e000)

这意味着它不是关于我自己的代码,至少不完全是,实际上你可以看到进程名称是glide-source-th,是的,Glide。今天这么多,一旦我与Glide支持联系,我会保持更新(见GitHub issue)。

0 个答案:

没有答案