android - 在 android 中使用 NDK 时崩溃,但 Firebase 不显示详细日志

标签 android android-ndk crash crashlytics firebase-crash-reporting

我已将 easyexifembedIICProfile 作为 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

Temp 文件夹,我已经构建了所有本地库并获取了 .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 应用程序包而不是 apk 文件上传到 Google 控制台。

日志没有显示更多细节。

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)

关于android - 在 android 中使用 NDK 时崩溃,但 Firebase 不显示详细日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864160/

相关文章:

linux - Windows 上的 Cygwin + Linux NDK

android - 当我尝试实现滚动条时,我的应用程序崩溃了

android - Base64 encodeBytes - 内存不足异常

android - 如何使用 Google App Engine 作为 Android 应用程序的后端数据库

linux - cSipSimple 应用程序错误 :- 'SL_ANDROID_STREAM_VOICE' undeclared (first use in this function)

android - 运行 add_qt_android_apk 时,CMake Android 工具链无法为 arm 找到 strip 命令

c++ - 尝试使用宽字符串创建类时出现访问冲突

java - Eclipse 工作区在每次关闭时都会损坏

java - Android 上的 Jsoup - OutOfMemory 错误

android - 在下拉模式下单击展开时微调器崩溃但在对话框模式下工作(仅在 API < 26 中)