android - c++ 库的崩溃报告显示丢失
问题描述
我已配置 build.gradle 和 Application 以使 Crashlytics 工作。但无法弄清楚为什么 c++ 代码显示“丢失”并且没有任何详细信息(行号、调用堆栈)。“./gradlew crashlyticsUploadSymbolsdevelopmentRelease”成功,没有任何错误。java代码崩溃报告的堆栈跟踪有效。只有 c++ 代码的崩溃报告显示“丢失”。
build by:
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
my build.gradle:
crashlytics {
enableNdk true
androidNdkOut 'build/intermediates/cmake/development/debug/obj'
androidNdkLibsOut 'build/intermediates/cmake/development/release/obj'
manifestPath 'src/main/AndroidManifest.xml'
}
解决方案
问题是 build.gradle 中 obj 和 lib 的路径错误。就我而言,c++ 库是由 cmake 构建的,我应该配置如下以上传符号以进行发布构建。
crashlytics {
enableNdk true
androidNdkOut 'build/intermediates/cmake/development/release/obj'
androidNdkLibsOut 'build/intermediates/transforms/stripDebugSymbol/development/release/0/lib'
manifestPath 'src/main/AndroidManifest.xml'
}
#in order to avoid manually run crashlyticsUploadsSymbols
android.applicationVariants.all { variant ->
def variantName = variant.name.capitalize()
if(variant.buildType.name=="release")
variant.assemble.finalizedBy(project.("crashlyticsUploadSymbols${variantName}"))
}
我学会了通过检查来检查上传是否成功:
~/Library/Caches/com.crashlytics/com.crashlytics.tools/crashlytics.log
推荐阅读
- laravel - 在每个刀片中包含导航栏和页脚的正确方法 - Laravel 7?
- angular - 向生产模式添加新更改后清除 Angular 缓存
- kubernetes - 如何在使用 PVC 时管理 pod 副本
- javascript - 在 Firebase 数据库引用后 Node.js 控制台挂起
- audio - 如何在 spi 闪存中写入音频文件(W25Q32FV)
- java - 我在 Android Manifest xml 中遇到了一些错误,我该如何解决这些错误?
- sql - 连接表以检索 DB2 中的数据
- javascript - 使用 Renderer2 对角度组件进行单元测试
- reactjs - React // Axios // Express Access-Control-Allow-Origin
- php - laravel 在哪个文件中使用 laravel/ui 包使用用户提供的密码解密散列密码?