firebase-android-sdk: Missing class com.google.android.datatransport.runtime.ForcedSender in Crashlytics 18.3.0

  • Android Studio version: Android Studio Dolphin | 2021.3.1 Patch 1
  • Firebase Component: Crashlytics
  • Component version: 18.3.0

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.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 9
  • Comments: 35 (16 by maintainers)

Commits related to this issue

Most upvoted comments

@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:

  • Fixes for firebase-crashlytics and firebase-crashlytics-ndk are now available, in version 18.3.1 for both artifacts.
  • The Firebase BoM has been updated with the fix, in version 31.0.1.
  • The firebase_crashlytics Flutter plugin has been updated with the fix, in version 3.0.2.
  • The Firebase Unity SDK has been updated with the fix, in version 10.0.1.
<strike>

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 dependencies block:

dependencies {
   implementation "com.google.firebase:firebase-crashlytics:18.3.0"
   implementation "com.google.firebase:firebase-datatransport:18.1.7"
   // ...
}
</strike>

Could you please update the alert message in the firebase console? Currently it looks like

image

I guess 18.30.0 should be 18.3.0, right?

BoM 31.0.1 is now available, so Crashlytics Android SDK customers using the BoM can take the newest version instead of rolling back.

@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.

Sorry for late response. Yes it’s resolved just added specific versions for app indexing

Firebase Unity 10.0.1 is now available, which resolves this issue. Crashlytics Unity customers should update to this version.

@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.

CC: @DjordjeMancic97, @alexkeramidas

Nice catch, @PhilippNowak96. I’ll inform our tech writers right away. Thanks for this!

@argzdev thank you for your update

@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.

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.

@worm69 firebase-core is just an alias for firebase-analytics.

If you use Google Analytics for Firebase or any other product that relies on it (A/B Testing for example). You can replace firebase-core with firebase-analytics. If you don’t use Analytics at all, feel free to remove firebase-core.

@argzdev There were few references of Indexing hidden in code, Removed that. Thanks for your time and inputs!