繁体   English   中英

如何使用 Firebase Crashlytics 对 Flutter 应用程序中的 Java 堆栈跟踪进行反混淆

[英]How to deobfuscate Java stacktrace in Flutter app with Firebase Crashlytics

在我的 firebase 控制台中,我可以看到以下崩溃:

Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Bad state: Cannot add event after closing. Error thrown null.
       at _StreamController.add(_StreamController.java:595)
       at _Rb.add(_Rb.java:867)
       at ._Zj(.java:1434)
       at _Fc.runUnary(_Fc.java:1335)
       at _Fc.fRa(_Fc.java:1244)
       at _BufferingStreamSubscription._ieb(_BufferingStreamSubscription.java:341)
       at _BufferingStreamSubscription._add(_BufferingStreamSubscription.java:271)
       at _hc._add(_hc.java:123)
       at _kc._Veb(_kc.java:253)
       at _hc._Veb(_hc.java:153)
       at ._Zj(.java:1434)
       at _Fc.runUnary(_Fc.java:1335)
       at _Fc.fRa(_Fc.java:1244)
       at _BufferingStreamSubscription._ieb(_BufferingStreamSubscription.java:341)
       at _BufferingStreamSubscription._add(_BufferingStreamSubscription.java:271)
       at _hc._add(_hc.java:123)
       at _jc._Veb(_jc.java:218)
       at _hc._Veb(_hc.java:153)
       at ._Zj(.java:1434)
       at _Fc.runUnary(_Fc.java:1335)
       at _Fc.fRa(_Fc.java:1244)
       at _BufferingStreamSubscription._ieb(_BufferingStreamSubscription.java:341)
       at _BufferingStreamSubscription._add(_BufferingStreamSubscription.java:271)
       at _hc._add(_hc.java:123)
       at _jc._Veb(_jc.java:218)
       at _hc._Veb(_hc.java:153)
       at ._Zj(.java:1434)
       at _Fc.runUnary(_Fc.java:1335)
       at _Fc.fRa(_Fc.java:1244)
       at _BufferingStreamSubscription._ieb(_BufferingStreamSubscription.java:341)
       at _Yb.zdb(_Yb.java:591)
       at _bc.pdb(_bc.java:706)
       at _Wb.tdb.<fn>(tdb.java:663)
       at ._Wj(.java:1418)
       at _Fc.oRa(_Fc.java:1328)
       at _Fc.eRa(_Fc.java:1236)
       at _Fc.jRa.<fn>(jRa.java:1276)
       at ._Wj(.java:1426)
       at _Fc.oRa(_Fc.java:1328)
       at _Fc.eRa(_Fc.java:1236)
       at _Fc.jRa.<fn>(jRa.java:1276)
       at ._yj(.java:40)
       at ._zj(.java:49)

我正在使用最新的 Firebase 酒吧(来自pubspec.lock ):

firebase_crashlytics:
    dependency: "direct main"
    description:
      name: firebase_crashlytics
      url: "https://pub.dartlang.org"
    source: hosted
    version: "2.8.2"
  firebase_crashlytics_platform_interface:
    dependency: transitive
    description:
      name: firebase_crashlytics_platform_interface
      url: "https://pub.dartlang.org"
    source: hosted
    version: "3.2.8"

我该怎么做才能获得可读的堆栈跟踪?

附言。 这也非常令人困惑,因为问题似乎发生在 Dart 代码中,但我可以在堆栈跟踪中看到 Java 文件。

聚苯硫醚。 我确实配置了 android 项目进行混淆,如下所示:

release {
            signingConfig signingConfigs.googleplaySigningConfig

            minifyEnabled true
            debuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'

            firebaseCrashlytics {
                mappingFileUploadEnabled true
                nativeSymbolUploadEnabled true
                unstrippedNativeLibsDir "build/app/intermediates/merged_native_libs/release/out/lib"
            }

            ndk {
                debugSymbolLevel 'FULL'
            }
        }

Crashlytics 最近添加了对使用--split-debug-info--obfuscate构建的 Flutter 应用程序的支持。

如果您使用这些参数构建应用程序,请尝试将 Crashlytics SDK 升级到最新版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM