Crashlytics 未上传映射文件
Crashlytics not uploading mapping file
我能够在 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 中的说明进行操作,特别是我已从 config.txt
中删除了 -printmapping <path>/mapping.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 上传任务 运行ning ] 输出,而对于旧的(工作)版本,我看到以下内容:
:app:crashlyticsUploadDeobsRelease (Thread[Daemon worker Thread 2,5,main]) completed. Took 1.28 secs.
你读过这里吗: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
唉。好吧,有一个简单的修复方法,可惜我花了这么长时间才找到它。我总是(直到现在)使用 ./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
(见上文)。
确保您的网络上没有任何东西阻止 Crashlytics 的主机。例如 PiHole。
我能够在 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 中的说明进行操作,特别是我已从 config.txt
-printmapping <path>/mapping.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 上传任务 运行ning ] 输出,而对于旧的(工作)版本,我看到以下内容:
:app:crashlyticsUploadDeobsRelease (Thread[Daemon worker Thread 2,5,main]) completed. Took 1.28 secs.
你读过这里吗: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
唉。好吧,有一个简单的修复方法,可惜我花了这么长时间才找到它。我总是(直到现在)使用 ./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
(见上文)。
确保您的网络上没有任何东西阻止 Crashlytics 的主机。例如 PiHole。