Crashlytics未上传映射文件

时间:2018-11-21 21:34:03

标签: android crashlytics crashlytics-android

我能够在Crashlytics中看到发布版本的崩溃,但它们仍然被混淆。我正在使用:

implementation "com.google.firebase:firebase-core:16.0.5"
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation "com.crashlytics.sdk.android:crashlytics:2.9.6"

和(项目级别)

    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'com.google.gms:google-services:4.2.0'
    classpath 'io.fabric.tools:gradle:1.26.1' // Crashlytics plugin
    classpath "net.ltgt.gradle:gradle-apt-plugin:0.15"

我已按照https://firebase.google.com/docs/crashlytics/get-deobfuscated-report上的说明进行操作,尤其是我已从-printmapping <path>/mapping.txt中删除了config.txt

当我查看Crashlytics日志时,看不到映射文件的上载。

当我使用以下项目为项目的早期版本运行发行版时:

implementation "com.google.firebase:firebase-core:11.8.0"
implementation "com.google.android.gms:play-services-base:11.8.0"
implementation('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
    transitive = true
}

和(项目级别)

    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'io.fabric.tools:gradle:1.24.4'

然后我在crashlytics.log中看到了清晰的堆栈跟踪和映射上传消息:

2018-11-21 10:52:22.573 [DEBUG] (Daemon worker) com.crashlytics  - Deobfuscation file(s) uploaded.

有什么想法吗?我在Crashlytics日志中没有看到任何与最新(不工作)版本相关的映射文件的日志,并且在gradle输出中没有看到gradle上传任务正在运行,而对于较旧(工作)版本,我看到了以下:

:app:crashlyticsUploadDeobsRelease (Thread[Daemon worker Thread 2,5,main]) completed. Took 1.28 secs.

3 个答案:

答案 0 :(得分:2)

啊。好了,有一个简单的解决方法,可惜我花了很长时间才找到它。我始终(直到现在)使用./gradlew iR./gradlew installRelease的快捷方式)构建并在本地安装发行版本。我尝试了(经过一段令人尴尬的长时间),而不是从Android Studio(Build > Generate Signed Bundle / Apk)构建。一旦我做到了,就行了。

如果我发现基于非AS的发布适用于Crashlytics,我将在此处进行更新。同时,如果您遇到问题,请查看示例https://github.com/firebase/quickstart-android/tree/master/crash。 您可以这样做,放入您自己的google-services.json并按上述方式发布,然后选中crashlytics.log(请参见上文)。

答案 1 :(得分:1)

您在这里阅读过:https://docs.fabric.io/android/crashlytics/dex-and-proguard.html吗?

我正在proguard-rules.pro文件中(应用文件夹中)使用这些行来获取模糊的崩溃报告

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
# prevent Crashlytics obfuscation
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

并确保在您的proguard文件中包含此行

-printmapping mapping.txt

答案 2 :(得分:0)

确保您的网络上没有任何东西阻止Crashlytics的主机。例如PiHole。