我们对 Android 端的代码进行了混淆,从那时起,我们就无法获得可读的崩溃报告。我尝试了很多选择,但到目前为止没有任何效果。
我尝试了很多不同的解决方案。
首先:我启用/禁用了 mappingFileUploadEnabled
并使用 .aab
文件将带或不带 debugging_file.zip
上传到 Google Play 商店。
我使用 build/app/intermediates/flutter/prodRelease/
下的三个文件创建了 debugging_file.zip
,它们是 arm64-v8a
、armeabi-v7a
和x86_64
。
第二:我启用了 mappingFileUploadEnabled
文件,并使用 .aab
文件将带有或不带有 debugging_file.zip
的文件上传到 Google Play 商店。
我使用 build/app/intermediates/merged_native_libs/prodRelease/out/lib
下的三个文件创建了 debugging_file.zip
,它们是 arm64-v8a
>、armeabi-v7a
和 x86_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/