Skip to content

firebase_crashlytics: Crashlytics does not show Flutter origin of NDK crashes on Android #17014

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 task done
shahbazhashmi opened this issue Jan 24, 2025 · 14 comments
Closed
1 task done
Labels
platform: android Issues / PRs which are specifically for Android. plugin: crashlytics resolution: solution-provided A solution has been provided in the issue. type: bug Something isn't working

Comments

@shahbazhashmi
Copy link

shahbazhashmi commented Jan 24, 2025

Is there an existing issue for this?

  • I have searched the existing issues.

Which plugins are affected?

Crashlytics

Which platforms are affected?

Android

Description

My Flutter Android app uses a third-party SDK that provides its own symbol files. Recently, we integrated the Crashlytics plugin and made the necessary changes on the Android native side.

The integration works perfectly for Flutter crashes, and even Android native crashes are being reported correctly. For SDK-related crashes, we upload the symbol files (provided by the SDK) using the CLI. These symbol files allow us to view symbolicated crash logs for the uploaded symbols. However, the Crashlytics console does not display the Flutter origin of these crashes. So how can I get Flutter origin of such crashes ?

Additionally, I see several entries on the console like the following:

libc.so (Missing BuildId xxxxx)
libflutter.so (Missing BuildId xxxxx)

How can I symbolicate these?

For context, I have not done any advanced configurations for Crashlytics on the Android native side. I have only added the required dependencies and plugins in the Gradle files.

Reproducing the issue

  1. Add firebase_crashlytics plugin in Flutter app which has a 3rd party SDK integrated.
  2. Add following changes in Android native side.
  3. Check crash log of the SDK crash on crashlytics console.

app build.gradle

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
    id "com.google.firebase.crashlytics"
}

dependencies {
    // crashlytics dependencies based on product flavors : starts
    implementation(platform("com.google.firebase:firebase-bom:33.7.0"))
    implementation("com.google.firebase:firebase-crashlytics-ktx")
    implementation("com.google.firebase:firebase-crashlytics-ndk")
    // crashlytics dependencies based on product flavors : ends
}

settings.gradle

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version '8.7.2' apply false
    id "org.jetbrains.kotlin.android" version "2.0.0" apply false
    id "com.google.firebase.crashlytics" version "3.0.2" apply false
}

Firebase Core version

3.8.1

Flutter Version

3.24.5

Flutter dependencies

Expand Flutter dependencies snippet
  firebase_crashlytics: ^4.2.0
  firebase_core: ^3.8.1
@shahbazhashmi shahbazhashmi added Needs Attention This issue needs maintainer attention. type: bug Something isn't working labels Jan 24, 2025
@russellwheatley
Copy link
Member

Hi @shahbazhashmi - Flutter stack traces are different. They require using the debug symbols when you build your Flutter app.

So if you build your app like so:

flutter build <target> --obfuscate --split-debug-info=symbols

You can grab the obfuscated stack trace from Firebase Crashlytics console, save it in error.txt, and run:

flutter symbolize -d symbols/app.android-x64.symbols -i error.txt

You should see a readable stack trace.

@russellwheatley russellwheatley added blocked: customer-response Waiting for customer response, e.g. more information was requested. plugin: crashlytics platform: android Issues / PRs which are specifically for Android. and removed Needs Attention This issue needs maintainer attention. labels Jan 24, 2025
@shahbazhashmi
Copy link
Author

Hello @russellwheatley thanks for reply. I don't use obfuscation and I build app using flutter build apk --flavor $FLAVOR --release only. And why do I need to do this manually? Shouldn't Crashlytics handle this automatically?

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels Jan 24, 2025
@russellwheatley
Copy link
Member

You have to remember that a crash occurring on the android side isn't going to register the dart code leading up to it as it is a separate process. Presuming you're using something like a method channel to communicate Flutter <--> Android; You would have to catch the exception on the native side which can be passed back to Flutter as a failed future, then you would have to use recordError() in the Flutter side for it to be reported to Crashlytics. If it is an uncaught exception on the android side, it will only show the android stack trace.

@russellwheatley russellwheatley added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels Jan 24, 2025
@shahbazhashmi
Copy link
Author

@russellwheatley I don't think the crash is occurring on the native Android side since the SDK provides Flutter methods, and the crash happens when calling those methods. It's a fatal crash that kills the app, so I don’t think it can be caught using a try-catch block. However, we are already using runZonedGuarded for error handling, and we are invoking the Crashlytics method in the necessary places.

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels Jan 24, 2025
@shahbazhashmi
Copy link
Author

flutter build --obfuscate --split-debug-info=symbols

Hi @shahbazhashmi - Flutter stack traces are different. They require using the debug symbols when you build your Flutter app.

So if you build your app like so:

flutter build <target> --obfuscate --split-debug-info=symbols

You can grab the obfuscated stack trace from Firebase Crashlytics console, save it in error.txt, and run:

flutter symbolize -d symbols/app.android-x64.symbols -i error.txt

You should see a readable stack trace.

I have checked this as well and it gives same symbolicated logs. Please read the issue again.

@russellwheatley
Copy link
Member

I'm a bit confused at this point. Could you provide a stack trace of the crash?

@shahbazhashmi
Copy link
Author

Here are the stack trace (2/209 threads) of the crash

Thread #1

null pointer dereference: SIGSEGV  0x0000000000000018
#00 pc 0x190ba98 liborgsdk.so (std::__ndk1::stoull(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, unsigned long*, int)) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#01 pc 0x1fefcd0 liborgsdk.so (std::__ndk1::__function::__func<org::sdk::core::authentication::requestAuthenticationAttributesAsync(std::__ndk1::shared_ptr<org::sdk::core::authentication::AuthenticationService> const&, std::__ndk1::function<void (std::__ndk1::optional<org::sdk::core::AuthenticationError> const&, std::__ndk1::optional<org::sdk::core::AuthenticationData> const&)> const&, std::__ndk1::shared_ptr<org::sdk::core::threading::PlatformThreading> const&)::$_0, std::__ndk1::allocator<org::sdk::core::authentication::requestAuthenticationAttributesAsync(std::__ndk1::shared_ptr<org::sdk::core::authentication::AuthenticationService> const&, std::__ndk1::function<void (std::__ndk1::optional<org::sdk::core::AuthenticationError> const&, std::__ndk1::optional<org::sdk::core::AuthenticationData> const&)> const&, std::__ndk1::shared_ptr<org::sdk::core::threading::PlatformThreading> const&)::$_0>, void (std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&)>::operator()(std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&)) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#02 pc 0x1fefcd0 liborgsdk.so (std::__ndk1::__function::__func<org::sdk::core::authentication::requestAuthenticationAttributesAsync(std::__ndk1::shared_ptr<org::sdk::core::authentication::AuthenticationService> const&, std::__ndk1::function<void (std::__ndk1::optional<org::sdk::core::AuthenticationError> const&, std::__ndk1::optional<org::sdk::core::AuthenticationData> const&)> const&, std::__ndk1::shared_ptr<org::sdk::core::threading::PlatformThreading> const&)::$_0, std::__ndk1::allocator<org::sdk::core::authentication::requestAuthenticationAttributesAsync(std::__ndk1::shared_ptr<org::sdk::core::authentication::AuthenticationService> const&, std::__ndk1::function<void (std::__ndk1::optional<org::sdk::core::AuthenticationError> const&, std::__ndk1::optional<org::sdk::core::AuthenticationData> const&)> const&, std::__ndk1::shared_ptr<org::sdk::core::threading::PlatformThreading> const&)::$_0>, void (std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&)>::operator()(std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&)) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#03 pc 0x1fee7b0 liborgsdk.so (os_adaptation::MemoryScopeAdapter<void (std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&)>::operator()(std::__ndk1::unordered_map<org::sdk::core::authentication::AuthenticationService::AttributeType, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::hash<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::equal_to<org::sdk::core::authentication::AuthenticationService::AttributeType>, std::__ndk1::allocator<std::__ndk1::pair<org::sdk::core::authentication::AuthenticationService::AttributeType const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>> const&) const) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#04 pc 0x1fef264 liborgsdk.so (os_adaptation::MemoryScopeAdapter<void ()>::operator()() const) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#05 pc 0x2024244 liborgsdk.so (std::__ndk1::__function::__func<org::sdk::core::async_utils::GraceShutdownExecutor::execute(std::__ndk1::function<void ()>)::$_0, std::__ndk1::allocator<org::sdk::core::async_utils::GraceShutdownExecutor::execute(std::__ndk1::function<void ()>)::$_0>, void ()>::operator()()) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#06 pc 0x2010bc8 liborgsdk.so (std::__ndk1::__function::__func<hf::async::ConcurrentThreadPoolExecutor::execute(std::__ndk1::function<void ()>)::'lambda'(), std::__ndk1::allocator<hf::async::ConcurrentThreadPoolExecutor::execute(std::__ndk1::function<void ()>)::'lambda'()>, void ()>::operator()()) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#07 pc 0x1fef264 liborgsdk.so (os_adaptation::MemoryScopeAdapter<void ()>::operator()() const) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#08 pc 0x44bbc80 liborgsdk.so (os_adaptation::ThreadPool::worker(os_adaptation::IWorkProvider*, unsigned long)) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#09 pc 0x44bc1a4 liborgsdk.so (void* std::__ndk1::__thread_proxy[abi:ne180000]<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct>>, std::__ndk1::__bind<void (os_adaptation::ThreadPool::*)(os_adaptation::IWorkProvider*, unsigned long), os_adaptation::ThreadPool*, os_adaptation::IWorkProvider*&, unsigned long>>>(void*)) (BuildId: c4dc5b2bda78dfce317d7346cca74cf40e88xxxx)
#10 pc 0x101d5c libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)
#11 pc 0x95bc0 libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)

Thread #2

Thread:
#00 pc 0x902fc libc.so (BuildId: 84a42637b3a421b801818f57934xxxx)
#01 pc 0x950d0 libc.so (BuildId: 84a42637b3a421b801818f57934xxxx)
#02 pc 0x1010e4 libc.so (BuildId: 84a42637b3a421b801818f57934xxxx)
#03 pc 0x233bb3c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#04 pc 0x233bb44 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#05 pc 0x233bb3c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#06 pc 0x2629ffc libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#07 pc 0x233bb44 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#08 pc 0x233bb3c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#09 pc 0x209f1b libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#10 pc 0x233bb44 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#11 pc 0x23394a4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#12 pc 0x2629ffc libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#13 pc 0x20a0b7 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#14 pc 0x233bb3c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#15 pc 0x233bb44 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#16 pc 0x233b4b8 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#17 pc 0x262b294 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#18 pc 0x235c764 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#19 pc 0x25ab70c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#20 pc 0x262b294 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#21 pc 0x258dfa4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#22 pc 0x262ae7c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#23 pc 0x20a0b7 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#24 pc 0x25ab6fd libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#25 pc 0x23394a4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#26 pc 0x262ae7c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#27 pc 0x2629ffc libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#28 pc 0x219a0c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#29 pc 0x233b628 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#30 pc 0x233b4b8 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#31 pc 0x26184d4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#32 pc 0x235ea08 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#33 pc 0x25aac54 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#34 pc 0x258dfa4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#35 pc 0x262ae7c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#36 pc 0x219a0c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#37 pc 0x22ca04c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#38 pc 0x2592054 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#39 pc 0x233387c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#40 pc 0x23378c4 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#41 pc 0x2592054 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#42 pc 0x2592054 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#43 pc 0x2337a6c libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#44 pc 0x2337a00 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#45 pc 0x22ca1fc libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#46 pc 0x20f4ed libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#47 pc 0x101d5c libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)
#48 pc 0x32bffc libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)
#49 pc 0x95bc0 libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)
#50 pc 0x101c8c libc.so (BuildId: 84a42637b3a421b801818f579341xxxx)
#51 pc 0x24b52d8 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)
#52 pc 0x22ca130 libflutter.so (BuildId: 78551bb34007bb924e8d0a744b490d6df4dxxxx)

Here you can see there is no information of Flutter origin of the crash. Also there is no information for "libc.so" and "libflutter.so".

@russellwheatley
Copy link
Member

Those stack traces are not coming from your Flutter source code. libflutter.so is compiled machine code bundled with android that is part of the Flutter framework. If you look at the first stack trace, you will note the function calls are C++.

@russellwheatley russellwheatley added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels Jan 27, 2025
@shahbazhashmi
Copy link
Author

@russellwheatley So, what's the solution? How can I get the Flutter stack trace? Are libc.so and libflutter.so supposed to appear like this?

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels Jan 28, 2025
@russellwheatley
Copy link
Member

Those stack traces are from the Flutter framework internal implementation I believe, which I think is written in C++ roughly speaking. I'm not sure how you triggered them as this is the first time I've seen them.

this liborgsdk.so I don't know, perhaps it is from the third party integration you mentioned. I don't have an easy solution for you I'm afraid. You would need to debug/record logs leading up to the crash to find out what caused it. Although, I'm not sure how you record logs when they aren't occurring within your source code.

@russellwheatley russellwheatley added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels Jan 28, 2025
@shahbazhashmi
Copy link
Author

That's the thing, liborgsdk.so is the SDK symbol file, and I do get symbolicated logs for it.

Suppose this is my Flutter code where I am invoking the SDK method from the Flutter side:

void invokeSdkMethod() {
    someSdkMethod(); // This method is provided by the SDK and is causing the crash
}

What I need:

  1. Details of my Flutter code to identify exactly where this crash originated.
  2. Symbolicated logs for libc.so and libflutter.so.

@google-oss-bot google-oss-bot removed the blocked: customer-response Waiting for customer response, e.g. more information was requested. label Jan 28, 2025
@google-oss-bot google-oss-bot added the Needs Attention This issue needs maintainer attention. label Jan 28, 2025
@russellwheatley
Copy link
Member

You don't obfuscate your app code so I don't think it needs de-obfuscating. I have no idea how to get symbolicated stack trace of libflutter.so I'm afraid. Like I said, this is Flutter's internal framework, it might be possible to find the symbol file for the release to de-obfuscate but I have never tried and this is the first time I've seen it. It might worth searching around Flutter documentation or opening an issue on the Flutter repo and asking.

@russellwheatley russellwheatley added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels Feb 3, 2025
@shahbazhashmi
Copy link
Author

I don't understand how it is related to Flutter. I can open an issue on Flutter repo but I am not sure if they will address it. What about the Flutter origin of the crash ?

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels Feb 4, 2025
@russellwheatley
Copy link
Member

I'm not sure how to capture correct stack trace from libflutter.so, it is a compiled C++ file that is bundled with your app. i.e I don't think Crashlytics on the firebase-android-sdk will capture the stack trace (presumably you would need the symbol file to desymbolicate but it is not something I've done and I'm not sure this is something possible).

Edit, I had a quick google and found an open issue for the very thing you're after:
flutter/flutter#101100

I'm closing this issue out as it isn't fixable from this repo.

@russellwheatley russellwheatley added resolution: solution-provided A solution has been provided in the issue. and removed Needs Attention This issue needs maintainer attention. labels Feb 4, 2025
@firebase firebase locked and limited conversation to collaborators Mar 7, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
platform: android Issues / PRs which are specifically for Android. plugin: crashlytics resolution: solution-provided A solution has been provided in the issue. type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants