我能够在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.
答案 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。