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

时间:2019-09-10 04:43:04

标签: 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"]

如果有人遇到相同的问题,请帮助我。 预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我的配置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应用程序捆绑包,而不是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)