- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 Fabric Crashlytics 时问题就出现了,而现在使用 Firebase Crashlytics 最新版本时它仍然存在。一切都基于official NDK docs并且每次构建后都会正确上传符号(cSYM)文件。我设法产生了一个故意的崩溃来比较墓碑和报告的 native 崩溃回溯,结果如下:
报告的 Firebase 控制台崩溃:
崩溃保存的墓碑文件:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/klteduosxx/klte:5.0/LRX21T/G900FDXXU1BOJ1:user/release-keys'
Revision: '14'
ABI: 'arm'
pid: 652, tid: 1160, name: AsyncTask #5 >>> com.mnhaami.pasaj <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'stack corruption detected'
r0 00000000 r1 00000488 r2 00000006 r3 00000000
r4 656f3db8 r5 00000006 r6 00000016 r7 0000010c
r8 656f3878 r9 00000000 sl 134eaf00 fp 13f14800
ip 00000488 sp 656f37f8 lr b6eeefd5 pc b6f11b74 cpsr 600d0010
d0 ffffffffffffffff d1 ffffffffffffffff
d2 ff816306ff836406 d3 ff795f04ff7e6206
d4 ffff000000000000 d5 0000000000000003
d6 ffff000000000000 d7 ffffffffffffffff
d8 0000000000000000 d9 0000000000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 0000000000000000 d17 6e6f697470757272
d18 ff916d0aff997208 d19 ff825f0aff896708
d20 ff715613ff785a11 d21 ff6b520fff6b520f
d22 ff6f5309ff6e530e d23 ff775b07ff735609
d24 0000000000000000 d25 0000000000000000
d26 0002000100010001 d27 0002000200020002
d28 0080008000800080 d29 0080008000800080
d30 0800080008000800 d31 0800080008000800
scr 2800001b
backtrace:
#00 pc 00036b74 /system/lib/libc.so (tgkill+12)
#01 pc 00013fd1 /system/lib/libc.so (pthread_kill+52)
#02 pc 00014bef /system/lib/libc.so (raise+10)
#03 pc 00011531 /system/lib/libc.so (__libc_android_abort+36)
#04 pc 0000fcbc /system/lib/libc.so (abort+4)
#05 pc 00012701 /system/lib/libc.so (__libc_fatal+16)
#06 pc 000368fb /system/lib/libc.so (__stack_chk_fail+6)
stack:
656f37b8 00000001
656f37bc 00430000
656f37c0 00550000
656f37c4 00000000
656f37c8 00430000
656f37cc b4e18218
656f37d0 00000000
656f37d4 2f94ff4a /dev/ashmem/dalvik-main space (deleted)
656f37d8 9866fb50
656f37dc 2f94ff4a /dev/ashmem/dalvik-main space (deleted)
656f37e0 656f3db8 [stack:1160]
656f37e4 00000006
656f37e8 00000016
656f37ec 00000488
656f37f0 00000000
656f37f4 b6eeefcd /system/lib/libc.so (pthread_kill+48)
#00 656f37f8 656f3db0 [stack:1160]
........ ........
#01 656f37f8 656f3db0 [stack:1160]
656f37fc 00000006
656f3800 00000000
656f3804 656f3820 [stack:1160]
656f3808 656f3898 [stack:1160]
656f380c b6eefbf3 /system/lib/libc.so (raise+14)
#02 656f3810 656f381c [stack:1160]
656f3814 b6eec535 /system/lib/libc.so (__libc_android_abort+40)
#03 656f3818 000000a8
656f381c ffffffdf
656f3820 00000000
656f3824 8c93ac00
656f3828 ae907e40
656f382c 2f94ff4a /dev/ashmem/dalvik-main space (deleted)
656f3830 93bcd2fc
656f3834 b4bc0435 /system/lib/libart.so (art::CheckJNI::GetIntArrayRegion(_JNIEnv*, _jintArray*, int, int, int*))
656f3838 b6f44e04
656f383c b6eeacc0 /system/lib/libc.so (__bionic_clone)
#04 656f3840 00000000
656f3844 b6eed705 /system/lib/libc.so (__fortify_chk_fail)
#05 656f3848 b6f359a5 /system/lib/libc.so
656f384c 656f385c [stack:1160]
656f3850 8f38e000
656f3854 b6f118ff /system/lib/libc.so (__stack_chk_fail+10)
656f3858 b6f359a5 /system/lib/libc.so
656f385c 2f94ff4a /dev/ashmem/dalvik-main space (deleted)
656f3860 8f38e000
656f3864 00000000
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
}
dependencies {
classpath "com.android.tools.build:gradle:3.6.3"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"
classpath "com.google.gms:google-services:4.3.3" // Google Services plugin
classpath "com.google.firebase:perf-plugin:1.3.1" // Performance Monitoring plugin
classpath "com.google.firebase:firebase-crashlytics-gradle:2.1.1"
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven {
url 'https://jitpack.io'
}
flatDir {
dirs 'libs'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
repositories {
maven { url 'http://dl.bintray.com/piasy/maven' }
mavenCentral()
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.firebase.firebase-perf'
android {
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
....
buildTypes {
debug {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
FirebasePerformance {
instrumentationEnabled false
}
}
release {
minifyEnabled true
useProguard = true
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-rules.pro'
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86_64"
}
/* Add the firebaseCrashlytics extension (by default,
* it's disabled to improve build speeds) and set
* nativeSymbolUploadEnabled to true. */
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
// Upload Crashlytics NDK symbols
tasks.whenTaskAdded { task -> if (task.name.startsWith('assemble') && task.name.endsWith("Release")) task.finalizedBy "uploadCrashlyticsSymbolFile" + task.name.substring('assemble'.length()) }
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
implementation platform('com.google.firebase:firebase-bom:25.2.1')
implementation "com.google.firebase:firebase-crashlytics-ndk:17.0.0"
implementation 'com.google.firebase:firebase-iid'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-appindexing'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-perf'
...
}
apply plugin: 'com.google.gms.google-services'
android {
...
buildTypes {
...
release {
firebaseCrashlytics {
nativeSymbolUploadEnabled true
applicationVariants.all { variant ->
firebaseCrashlytics {
strippedNativeLibsDir "build/intermediates/stripped_native_libs/${variant.name}/out/lib"
unstrippedNativeLibsDir "build/intermediates/ndkBuild/${variant.name}/obj/local"
}
}
}
}
}
}
find /I
而不是
grep
,因为我在 Windows 上):
gradlew app:assembleRelease --console=plain --debug | find /I "[com.google.firebase.crashlytics]"
implementation 'com.google.firebase:firebase-iid'
连同
implementation platform('com.google.firebase:firebase-bom:25.2.1')
是什么让我无法赎回:) 因为显然 Firebase 已经在
com.google.firebase:firebase-messaging
中使用实例 ID 依赖项本身。长话短说,仅使用此配置帮助我正确上传了我的符号:
android {
...
buildTypes {
...
release {
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
}
}
}
// Upload Crashlytics NDK symbols
tasks.whenTaskAdded { task -> if (task.name.startsWith('assemble') && task.name.endsWith("Release")) task.finalizedBy "uploadCrashlyticsSymbolFile" + task.name.substring('assemble'.length()) }
dependencies {
...
implementation platform('com.google.firebase:firebase-bom:25.2.1')
implementation 'com.google.firebase:firebase-iid:20.1.5'
implementation 'com.google.firebase:firebase-messaging'
...
}
最佳答案
Firebaser在这里-
您粘贴屏幕截图的崩溃报告似乎只发生在系统库中。我们可以在 Crashlytics 崩溃报告(和墓碑)中看到,所有的堆栈帧都与“libc.so”相关联——这是一个 Android 系统运行时库,任何像 Crashlytics 这样的库都无法符号化。
这是因为 Crashlytics 只能表示来自您为其上传符号的库的崩溃或堆栈帧。由于 libc.so 是您和 Crashlytics 都没有其符号的系统库,因此这是预期的行为。 Crashlytics 仍会显示帧,即使它不能象征性地表示它仍在报告尽可能多的信息。
如果您能够提交包含调用堆栈的测试崩溃报告,该调用堆栈通过您尝试上传符号的您自己的 native 库,并且您仍然到处看到“(缺失)”,那将是出乎意料的。如果是这种情况,我建议您确保已关注 these instructions在您链接的文档中,并联系 Firebase support如果您仍有问题。
关于Android Firebase Crashlytics NDK 回溯缺少帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62025607/
我想使用 ndk 构建一个 3rd 方库 avahi。 avahi 已经有 android 端口(带有有效的 Android.mk)。 我做了什么: 我已经成功创建了一个项目并将所有源代码复制到 jn
由于不再需要Android NDK,因此我尝试将其卸载。在Eclipse中找到的路径似乎已损坏。我应该如何清理这个烂摊子?我尝试了brew,但它说未安装NDK。 (它甚至告诉我未安装SDK!也许不是通
我是 Android Studio 和 Android NDK 的新手。我正在尝试使用 android NDK 为类分配编译一个简单的 hello.c 程序。我已按照以下项目说明进行操作,但出现错误:
当我尝试执行 NDK 构建时,我收到以下错误列表...有人知道吗? encies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/Fr
我正在使用 android-ndk-profiler-3.1 为我的项目进行 NDK 分析。我在 Android.mk 中进行了如下更改... LOCAL_PATH := $(call my-dir)
我需要使用 cutils 库和头文件在我的 NDK 项目中实现 ashmem,但我在我的系统中找不到与 cutils 相关的任何内容。它位于何处或从何处获得? 最佳答案 Android“cutils”
我有两个独立的项目,一个项目用于构建 Boost 库,另一个项目从构建的 boost 库中调用。 Boost 项目编译良好并生成 libboost.a 文件。我想要实现的是将此库添加到我的其他 NDK
我在ndk-build clean上遇到以下错误 mo@mo-Toshiba ~/Workspace/AndroidApp/jni/android_programming_driver $ ndk-b
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试使用 NDK(又使用开放 SLES)在 Android 上创建一个基于流的音频应用程序。我已经完成了基本的流媒体设置。我需要知道 Android 中如何处理欠载(或重载)?错误回调是如何实现
我的 Application.mk 设置为构建 arm 以及 x86 共享库: APP_ABI :- armeabi-v7a x86 我有预建的 openssl 静态库: libcrypto_v7a.
我的 $NDK_HOME 文件夹包含标准库的不同实现。 qdii@nomada /opt/android-ndk/platforms $ ls -l total 24 drwxr-xr-x 5 roo
如何安装android-ndk。我已经为 ndk 设置了路径,但在执行“ndk-build”命令时仍然出现错误。 fya 我正在使用 Windows 操作系统。 最佳答案 它对我有用: 打开命令提示符
构建 Android-ndk 时出现以下错误 请帮助我。 Cygwin.bat @echo off set IS_UNIX= set DEV_ROOT=C:/iliu-Android-NDK-Fibo
我开始使用 android ndk (r8c),为此我安装了新版本的 Ubuntu 12.10 (32bit) 问题,无论我尝试构建什么,我都会遇到让我发疯的怪异错误...... ~/workspac
我正在尝试向我的 Android 项目添加 Crashlytics 支持,该项目使用 NDK 和 gradle CMake。这意味着我的共享项目需要符号。所以如果我想为发布版本创建符号,我会调用 gr
我想知道是否有人设法使用 Android NDK(r8d) 的工具链构建了新的 SDL2。 SDL2 似乎非常接近发布(从昨天开始,它不再是“正在 build 中:http://hg.libsdl.o
我试图在“ndk-build”过程中禁用所有警告,以编译与 Android 上的 JNI 一起使用的 CPP 代码。 我正在使用 LOCAL_CFLAGS := -Wno-error没有成功。 有任何
谁能告诉我如何在android(ndk-build)中建立C-ares库 最佳答案 这是使用NDK standalone toolchain将其构建为ARMv7的静态库的方法: export NDK=
我正在尝试从我的 native 代码中读取一个简单的文本文件。 我把file.txt放在assets文件夹下 在我的事件中,我正在创建 Assets 管理器:assetManager = getAss
我是一名优秀的程序员,十分优秀!