android - 无法在 Crashlytics 中获取本机崩溃的堆栈跟踪
问题描述
我有一个包含本机库 (.so) 的 Android 项目。我已将 firebase crashlytics 集成到我的项目中。我能够在 firebase crashlytics 中获取 Java 崩溃的崩溃转储。但是,在本机崩溃的情况下 - 堆栈跟踪丢失例如 - 它类似于:
Crashed: Thread: SIGSEGV 0x0000000003000000
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
at (Missing)()
我已经分别在文件夹 app/src/main/obj 和 app/src/main/libs 中添加了原生库的调试和发布版本 app build.gradle 的相关部分是:
crashlytics {
enableNdk true
androidNdkOut 'src/main/obj/'
androidNdkLibsOut 'src/main/libs/'
//manifestPath 'src/main/AndroidManifest.xml'
}
我使用命令上传本机符号
./gradlew crashlyticsUploadSymbolsRelease
返回成功(我的应用程序的构建变体是 Release)。我也做过
./gradlew crashlyticsUploadSymbolsDebug
可以肯定的是,但这也无济于事。
所以我的问题是:
有没有我遗漏的步骤?
我该如何调试和解决这个问题?
解决方案
不要忘记检查命令的详细输出./gradlew crashlyticsUploadSymbolsRelease --debug
。它必须显示类似Crashlytics symbol file uploaded successfully
. 如果不是这种情况,请检查可能指示根本原因的周围消息。
这对我来说还不够,为了解决这个问题,我遵循了这里的建议:我在文件中设置android:extractNativeLibs
为。true
AndroidManifest.xml
<application
android:extractNativeLibs="true"
...
</application>
请注意,此设置会影响 apk 大小及其安装大小,如下所述:Setting android:extractNativeLibs=false to reduce app size
推荐阅读
- c++ - 在任何带有引用变量的 C++ 编译器中会发生什么?
- angular - 如何在有条件的 ViewChild 上订阅主题?
- api - chef 自动化 api 以获取所有节点不工作的合规性报告
- r - 如何将 CHR 中的时间转换为 R 中的时间?
- flask - 使用 OpenAPI3 文档字符串中的 Flasgger 验证 POST 请求正文
- javascript - 选项不会加载到选择组件中
- oop - 如果变量是从构造函数传递的,或者变量不是私有的,那么它是否称为封装?
- arduino - 如何使用指纹模块启动Win10
- javascript - 模态对话框打开时默认打开下拉菜单
- android - 如何将 Url 从 Firebase Storage 存储到 ArrayList 中?