android - Flutter android 如何获取可读的 firebase crashlytics 报告?

标签 android flutter crashlytics crashlytics-android

我们对 Android 端的代码进行了混淆,从那时起,我们就无法获得可读的崩溃报告。我尝试了很多选择,但到目前为止没有任何效果。

enter image description here

我尝试了很多不同的解决方案。

首先:我启用/禁用了 mappingFileUploadEnabled 并使用 .aab 文件将带或不带 debugging_file.zip 上传到 Google Play 商店。

我使用 build/app/intermediates/flutter/prodRelease/ 下的三个文件创建了 debugging_file.zip,它们是 arm64-v8aarmeabi-v7ax86_64

第二:我启用了 mappingFileUploadEnabled 文件,并使用 .aab 文件将带有或不带有 debugging_file.zip 的文件上传到 Google Play 商店。

我使用 build/app/intermediates/merged_native_libs/prodRelease/out/lib 下的三个文件创建了 debugging_file.zip,它们是 arm64-v8a >、armeabi-v7ax86_64

我正在使用:

flutter: 2.10.0
dart: 2.16.0
firebase_core: ^1.4.0
firebase_crashlytics: ^2.4.5
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
classpath 'com.android.tools.build:gradle:7.0.4'
kotlin_version = '1.6.0'

混淆者:

-keep class androidx.lifecycle.** { *; }

-keepclassmembers class * extends java.lang.Enum {
    <fields>;
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable        # Keep file names and line numbers.
-keep public class * extends java.lang.Exception  # Optional: Keep custom exceptions.

gradle.属性:

org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

知道如何遇到这个问题吗?

最佳答案

经过许多研究人员和多次尝试来解决这个问题 我就到此为止了。 您只能使用此命令手动反混淆 dart 代码

flutter symbolize -i <stack trace file> -d /out/android/app.android-arm64.symbols

查看此链接以获取更多信息 https://docs.flutter.dev/deployment/obfuscate

我解决这个问题的步骤如下: 1-创建文件error.txt 2-复制粘贴来自 crashlytics 的堆栈跟踪,其中数字是内联的。

例如:

  #08 abs 0 virt 00000000002ccc63 _kDartIsolateSnapshotInstructions+0x114473 (.java)
  #09 abs 0 virt 00000000002ccae3 _kDartIsolateSnapshotInstructions+0x1142f3 (.java)
  #10 abs 0 virt 000000000059d687 _kDartIsolateSnapshotInstructions+0x3e4e97 (.java) 

3-在每行之前添加 2 到 4 个空格。 4-删除(.java)(如果存在)。

5-在flutter终端中运行此命令

flutter symbolize -i error.txt -d build/app/outputs/symbols/app.android-arm64.symbols

关于android - Flutter android 如何获取可读的 firebase crashlytics 报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71205479/

相关文章:

swift - 看不到崩溃问题

android - 我无法从 Firebase 数据库中检索 bool 数据

android - Android 中 mapview 上的地理定位图像

android - 在 Flutter 中使用 awesome_notifications 显示通知的问题

flutter - 'androidx.lifecycle :lifecycle-runtime' has different version for the compile

android - 在 android 的 onCreate 方法上初始化 Crashlytics 是个好主意吗?

ios - 手动打开 Crashlytics OSX App

java - Admob NativeExpressAdView 仅 java

java - Android Studio cwac-camera CameraFragment java.lang.LinkageError

Flutter:迭代期间并发修改:Instance(length:2) of '_GrowableList'