-
Notifications
You must be signed in to change notification settings - Fork 580
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
Missing class com.google.android.datatransport.runtime.ForcedSender in Crashlytics 18.3.0 #4223
Comments
Thanks for reporting, @c0ff33-b34n. I was able to reproduce the same behavior. Adding some stacktraces:
|
@c0ff33-b34n Thanks for reporting this, version 18.3.0 of the Crashlytics Android SDK specifies an outdated version of a dependency. (You will see the same issue if you use the BoM.) UPDATES:
We're working on a fix now. In the meantime, you can either use the prior version of Crashlytics (18.2.13), or explicitly declare the missing dependency in your app's build.gradle
|
We will be shipping a new version of Crashlytics that references the correct dependencies shortly. I'll post here when we do. To summarize the impact: The original crash report should make it through to the Crashlytics servers. The NoClassDefFoundError typically occurs in the background so it will not generally be noticeable to the end-user, though there may be circumstances where customers experience a subsequent crash due to this issue. |
Long for new release! |
Nice catch, @PhilippNowak96. I'll inform our tech writers right away. Thanks for this! |
I am using Unity Crashlytics 9.5.0 Which lower should use? |
@dunghn94 You are fine with Unity Crashlytics 9.5.0. For the Firebase Unity SDK, the issue is only in version 10.0.0. A fix will be out ASAP, likely 10.0.1. |
which Flutter Crashlytics plugin version is safe to use? |
@DjordjeMancic97 Good versions are listed here. Crashlytics Flutter plugin 2.8.13 is safe to use. |
This comment will be updated with recommended versions for the BoM, Unity, and Flutter SDKs as fixes are released. |
BoM 31.0.1 is now available, so Crashlytics Android SDK customers using the BoM can take the newest version instead of rolling back. |
Sorry to invade the thread but does not the BOM get retrieved from the firebase core settings.gradle file?
For Flutter firebase_core versions less than 2.0.0, the bom stands at 30.0.5 (so not the faulty BOM) Am I missing something? |
@alexkeramidas Yes, only the latest version (as of right now) of the Flutter plugin is problematic; the older versions are fine. |
My question comes from the suggestion here... It says that flutter firebase_crashlytics should revert to 2.8.13. Based on your last answer I assume using all 2.. (like 2.8.12, 2.8.13, 2.9.0) versions of flutter firebase_crashlytics that do not require version 2.0.0 of the flutter firebase_core is OK, as long as firebase_core is not on 2.0.0. Thanks in advance for the answer. |
@alexkeramidas For more context, the issue is specifically in Android Crashlytics 18.3.0, which Flutter firebase_crashlytics 2.9.0 depends on. It is independent of firebase_core. You can safely use 2.8.13, or any version other than 2.9.0, and no need to pin firebase_core. |
@mrichards I've updated and tested with com.google.firebase:firebase-crashlytics:18.3.1 and can confirm that it resolves the issue when using Crashlytics Android. Gradle now pulls in the External Library com.google.android.datatransport:transport-runtime:3.1.8@aar containing ForcedSender. I ran my app. Forced a crash and reloaded the app. The app no longer crashes on re-load. The crash was also received correctly in the Firebase console. Thanks for the fast response to this issue. |
@RoarGronmo Yes, the fixed Flutter SDK was released a little while ago! We've validated it, so we now recommend everyone update to firebase_crashlytics 3.0.2. |
Thanks for the prompt response and fix. Good stuff. Regarding the subject I pointed out. @mrober Since the following commit from April 2022 it's indicated that there is no strict dependency of the flutter firebase_crashlytics plugin to the Android Crashlytics. It seems to depend entirely on the BOM version declared in the flutter firebase_core. I would be very surprised if any version of firebase_core other than 2.0.0 produces the mentioned issue. And since flutter firebase_crashlytics 2.9.0 is not compatible with 2.0.0 (it requires firebase_core: ^1.10.0) I don't expect it to cause the mentioned issue. It seem that 2.18.3 is not any different in terms of dependencies. The version analysis comes from here https://firebase.google.com/support/release-notes/android BOM 30.5.0 uses Android Crashlytics 18.2.13 (firebase_core 1.23.0 up to 1.24.0) BTW Any other combination with firebase_core 2.0.0 would either not even execute a pub get or would work normally. Sorry if I am drilling this too much but the numbers don't add up in my head, or I am just too tired. |
Firebase Unity 10.0.1 is now available, which resolves this issue. Crashlytics Unity customers should update to this version. |
@RoarGronmo if you want to check availability go to Google's Maven: https://maven.google.com/web/m_index.html#com.google.firebase:firebase-bom mvnrepository.com just gathers the data from the repos and is sometimes delayed. |
after updating to BOM version 31.0.1 I'm getting error messages
any updates, please? |
@MoustafaElsaghier Your error seems unrelated to the original issue reported here. However, can you please show your build.gradle (app) file? Do you use appindexing in your app at all? |
@thatfiredev yes, I'm using appindexing and depending on BOM, and no issues with BOM version 30.3.0 but once update to 31.0.1 I get the error |
Hi @MoustafaElsaghier, BoM version 31.0.1 no longer contains firebase-appindexing, firebase-core, and firebase-iid. For firebase-appindexing, it is recommended to use the one of the following options in our documentations. |
@argzdev thank you for your update |
Did you fix your issue? I removed firebase-appindexing but still not able to run the app! |
Hi @AkashNair2, you might have a different issue compared to MoustafaElsaghier. That said, could you open a new ticket using our template? The details you provide in our template will help us a lot when investigating your issue. |
@argzdev There were few references of Indexing hidden in code, Removed that. |
Sorry for late response. |
@worm69 If you use Google Analytics for Firebase or any other product that relies on it (A/B Testing for example). You can replace |
Describe the problem
If a crash occurs within the Android app (e.g. by throwing a NullPointerException on the press of a button within the app), when restarting the app the app does not load and crashes due to missing the com.google.android.datatransport.runtime.ForcedSender class, which was newly added in this version.
This occurs when updating to 18.3.0, using the crashlytics dependency only.
implementation 'com.google.firebase:firebase-crashlytics:18.3.0'
I am not using the BOM dependency (so do not know if this dependency is resolved when using BOM, but it's definitely missing for the above usage.)
I have reverted to 18.2.13 in the meantime as it is stable.
Steps to reproduce:
What happened? How can we make the problem occur?
By updating to Crashlytics 18.3.0, crashing the app then trying to relaunch.
The text was updated successfully, but these errors were encountered: