android - 在 android 中使用 NDK 时崩溃,但 Firebase 不显示详细日志
问题描述
我已将easyexif
,embedIICProfile
作为 C++ 代码添加到我的 android 项目中。
所有这些都在我的设备上运行良好,但是当我分发到 Google Play 上时。我的用户捕获并反馈了一些崩溃,但是当我检查 FireBase Crashlytics 时,它没有显示详细信息。
这是我来自 Firebase 的日志
Crashed: Thread #1
SIGABRT 0x0000000000003423
0 libc.so (Missing)
1 split_config.armeabi_v7a.apk (Missing)
2 libc.so (Missing)
3 split_config.armeabi_v7a.apk (Missing)
4 split_config.armeabi_v7a.apk (Missing)
5 libc.so (Missing)
6 split_config.armeabi_v7a.apk (Missing)
7 split_config.armeabi_v7a.apk (Missing)
8 split_config.armeabi_v7a.apk (Missing)
....
这不显示回溯。
这是gradle配置。
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion compileSdkVersion
versionCode 1
versionName "1.0"
externalNativeBuild {
cmake {
targets "easyexif"
abiFilters = rootProject.ext.chosenAbiFilters
arguments "-DANDROID_STL=c++_shared", "-DNO_TESTS=true"
cppFlags "-std=c++11"
}
}
ndk {
abiFilters = rootProject.ext.chosenAbiFilters
}
}
chosenAbiFilters = ["armeabi-v7a", "arm64-v8a", "x86"]
如果有人遇到同样的问题,请帮助我。提前感谢您的帮助。
解决方案
我的配置 Firebase Crashlytics
临时文件夹,我已经构建了所有本机库并获取.so
文件和.o
文件并将它们全部放入波纹管文件夹
Project/
/app
/ndkout
/libs
/arm64-v8a
/armeabi
/armeabi-v7a
/x86
/x86-64
/obj
/arm64-v8a
/armeabi
/armeabi-v7a
/x86
/x86-64
这是我的 Firebase crashlytics 配置
crashlytics {
enableNdk true
androidNdkOut 'ndkout/obj'
androidNdkLibsOut 'ndkout/libs'
}
// Crashlytics
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.0'
我已./gradlew crashlyticsUploadSymbolsRelease
成功运行命令及其响应。
> Task :easyexif:externalNativeBuildRelease
Build easyexif_armeabi-v7a
[1/3] Building CXX object CMakeFiles/easyexif.dir/exif.cpp.o
[2/3] Building CXX object CMakeFiles/easyexif.dir/EasyExifJNI.cpp.o
[3/3] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/easyexif/build/intermediates/cmake/release/obj/armeabi-v7a/libeasyexif.so
Build easyexif_arm64-v8a
[1/3] Building CXX object CMakeFiles/easyexif.dir/exif.cpp.o
[2/3] Building CXX object CMakeFiles/easyexif.dir/EasyExifJNI.cpp.o
[3/3] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/easyexif/build/intermediates/cmake/release/obj/arm64-v8a/libeasyexif.so
Build easyexif_x86
[1/3] Building CXX object CMakeFiles/easyexif.dir/exif.cpp.o
[2/3] Building CXX object CMakeFiles/easyexif.dir/EasyExifJNI.cpp.o
[3/3] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/easyexif/build/intermediates/cmake/release/obj/x86/libeasyexif.so
> Task :embedIICProfile:externalNativeBuildRelease
Build embedICCProfile_armeabi-v7a
[1/2] Building CXX object CMakeFiles/embedICCProfile.dir/EmbedICCProfile.cpp.o
[2/2] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/embedIICProfile/build/intermediates/cmake/release/obj/armeabi-v7a/libembedICCProfile.so
Build embedICCProfile_arm64-v8a
[1/2] Building CXX object CMakeFiles/embedICCProfile.dir/EmbedICCProfile.cpp.o
[2/2] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/embedIICProfile/build/intermediates/cmake/release/obj/arm64-v8a/libembedICCProfile.so
Build embedICCProfile_x86
[1/2] Building CXX object CMakeFiles/embedICCProfile.dir/EmbedICCProfile.cpp.o
[2/2] Linking CXX shared library /Users/mbp0015/Projects/AndroidProjects/TotalConverter/embedIICProfile/build/intermediates/cmake/release/obj/x86/libembedICCProfile.so
BUILD SUCCESSFUL in 4m 18s
109 actionable tasks: 23 executed, 86 up-to-date
好的,所以我的 Firebase Crashltics 日志仍然没有显示。不同的是,我使用的是 android app bundle 来上传到 Google 控制台而不是apk
文件。
日志没有显示更多细节。
Crashed: Thread #1
SIGABRT 0x000027f700004b0c
0
libc.so
(Missing)
1
libc.so
(Missing)
2
split_config.arm64_v8a.apk
(Missing)
3
split_config.arm64_v8a.apk
(Missing)
4
split_config.arm64_v8a.apk
(Missing)
5
split_config.arm64_v8a.apk
(Missing)
6
split_config.arm64_v8a.apk
(Missing)
7
split_config.arm64_v8a.apk
(Missing)
8
split_config.arm64_v8a.apk
(Missing)
9
split_config.arm64_v8a.apk
(Missing)
10
split_config.arm64_v8a.apk
(Missing)
11
split_config.arm64_v8a.apk
(Missing)
12
split_config.arm64_v8a.apk
(Missing)
13
base.odex
(Missing)
14
libart.so
(Missing)
15
libc.so
(Missing)
16
libutils.so
(Missing)
17
libutils.so
(Missing)
18
libandroid_runtime.so
(Missing)
19
(Missing)
20
(Missing)
21
(Missing)
22
(Missing)
23
(Missing)
24
boot-framework.oat
(Missing)
25
(Missing)
26
(Missing)
27
(Missing)
28
(Missing)
29
(Missing)
30
(Missing)
31
boot-framework.oat
(Missing)
32
(Missing)
33
(Missing)
34
(Missing)
35
(Missing)
36
(Missing)
37
(Missing)
38
(Missing)
39
(Missing)
40
(Missing)
41
(Missing)
42
(Missing)
43
boot-framework.oat
(Missing)
44
(Missing)
45
(Missing)
46
(Missing)
47
libart.so
(Missing)
48
(Missing)
49
(Missing)
50
libart.so
(Missing)
51
(Missing)
52
(Missing)
53
(Missing)
54
(Missing)
55
(Missing)
56
(Missing)
57
(Missing)
58
(Missing)
59
(Missing)
60
libart.so
(Missing)
61
(Missing)
62
(Missing)
63
(Missing)
64
(Missing)
推荐阅读
- jquery - OAuth 服务提供商在无效的用户名/密码上返回 400/Bad Request
- bitbucket-pipelines - 缓存 bitbucket 管道映像
- azure - Azure Liquid 模板 - 如何从 Apim 策略中的嵌套 json 获取特定值
- c++ - 将 pegjs 转换为 C++
- r - 已解决 - Rcpp 在 MacOS Big Sur 上的 Vector.h 中返回错误
- python - Tkinter askdirectory()未显示在屏幕上
- php - MySQL全文搜索 - 多个搜索相同的字段
- r - 用随机行的值替换数据框中的特定值
- javascript - 谷歌翻译元素获取当前语言
- c# - 为什么它计算一些数字正确而一些数字错误?C#