在我的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)。