FirebaseUI-Android: java.lang.ClassNotFoundException: com.firebase.ui.auth.data.model.FlowParameters
Step 1:
When trying to get the Auth UI going:
Intent intent = AuthUI.getInstance()
.createSignInIntentBuilder()
.setTheme(R.style.SplashTheme)
.setAvailableProviders(idpConfigs)
.setTosAndPrivacyPolicyUrls(getString(R.string.terms_url), getString(R.string.privacy_url))
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.build();
startActivityForResult(intent, RC_FIREBASE_UI_SIGNIN);
I see the following behaviour:
- if
idpConfigs
contains exactly one item, it correctly proceeds to the one login method - if
idpConfigs
contains more than one item, theAuthMethodPickerActivity
is displayed WITHOUT any of the login buttons (but it correctly shows the ToS/PP at the bottom)
Looking through the logs, I see this error:
08-23 21:01:07.343 1358-2025/? E/Parcel: Class not found when unmarshalling: com.firebase.ui.auth.data.model.FlowParameters
java.lang.ClassNotFoundException: com.firebase.ui.auth.data.model.FlowParameters
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at android.os.Parcel.readParcelableCreator(Parcel.java:2835)
at android.os.Parcel.readParcelable(Parcel.java:2789)
at android.os.Parcel.readValue(Parcel.java:2692)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3059)
at android.os.BaseBundle.unparcel(BaseBundle.java:257)
at android.os.BaseBundle.getString(BaseBundle.java:1086)
at android.content.Intent.getStringExtra(Intent.java:7706)
at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:458)
at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:409)
at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1270)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6053)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5906)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:121)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3887)
at android.os.Binder.execTransact(Binder.java:682)
Caused by: java.lang.ClassNotFoundException: com.firebase.ui.auth.data.model.FlowParameters
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:1355)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:1415)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at android.os.Parcel.readParcelableCreator(Parcel.java:2835)
at android.os.Parcel.readParcelable(Parcel.java:2789)
at android.os.Parcel.readValue(Parcel.java:2692)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3059)
at android.os.BaseBundle.unparcel(BaseBundle.java:257)
at android.os.BaseBundle.getString(BaseBundle.java:1086)
at android.content.Intent.getStringExtra(Intent.java:7706)
at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:458)
at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:409)
at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1270)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6053)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5906)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:121)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3887)
at android.os.Binder.execTransact(Binder.java:682)
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
08-23 21:01:07.343 1358-2025/? W/Bundle: Failed to parse Bundle, but defusing quietly
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.firebase.ui.auth.data.model.FlowParameters
at android.os.Parcel.readParcelableCreator(Parcel.java:2863)
at android.os.Parcel.readParcelable(Parcel.java:2789)
at android.os.Parcel.readValue(Parcel.java:2692)
at android.os.Parcel.readArrayMapInternal(Parcel.java:3059)
at android.os.BaseBundle.unparcel(BaseBundle.java:257)
at android.os.BaseBundle.getString(BaseBundle.java:1086)
at android.content.Intent.getStringExtra(Intent.java:7706)
at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:458)
at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:409)
at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1270)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6053)
at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5906)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:121)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3887)
at android.os.Binder.execTransact(Binder.java:682)
Which would explain the issue. Here’s the relevant snippet of my build.gradle:
// Play Services
implementation "com.google.android.gms:play-services-auth:15.0.1"
implementation "com.google.android.gms:play-services-base:15.0.1"
implementation "com.google.android.gms:play-services-appinvite:15.0.1"
implementation "com.google.android.gms:play-services-gcm:15.0.1"
implementation "com.google.android.gms:play-services-location:15.0.1"
implementation "com.google.android.gms:play-services-places:15.0.1"
implementation "com.google.android.gms:play-services-ads:15.0.1"
// Firebase
implementation "com.google.firebase:firebase-core:16.0.0"
implementation "com.google.firebase:firebase-auth:16.0.1"
implementation "com.google.firebase:firebase-database:16.0.1"
implementation "com.google.firebase:firebase-storage:16.0.1"
implementation "com.google.firebase:firebase-crash:16.0.1"
implementation "com.google.firebase:firebase-messaging:17.3.0"
implementation "com.google.firebase:firebase-config:16.0.0"
implementation "com.google.firebase:firebase-invites:16.0.1"
implementation "com.google.firebase:firebase-perf:16.1.0"
implementation 'com.firebaseui:firebase-ui:4.1.0'
This used to work, but I guess it broke with a recent update of FirebaseUI.
Step 2: Describe your environment
- Android device: S9+
- Android OS version: 8.0.0
- Google Play Services version: 12.8.74
- Firebase/Play Services SDK version: 15.0.1
- FirebaseUI version: 4.1.0
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 28 (19 by maintainers)
Commits related to this issue
- fix #1416 - ClassNotFound for FlowParameters See https://stackoverflow.com/a/28589962/4548500 for details. — committed to dimipaun/FirebaseUI-Android by dimipaun 6 years ago
- fix #1416 - ClassNotFound for FlowParameters (#1451) — committed to firebase/FirebaseUI-Android by dimipaun 6 years ago
- Fix #1416 - Wrap flow params into a Bundle to avoid a ClassNotFoundException during unmarshaling. See https://github.com/ArthurHub/Android-Image-Cropper/pull/332 — committed to dimipaun/FirebaseUI-Android by dimipaun 6 years ago
- Fix #1416 - Wrap flow params into a Bundle to avoid a ClassNotFoundException during unmarshaling. See https://github.com/ArthurHub/Android-Image-Cropper/pull/332 — committed to dimipaun/FirebaseUI-Android by dimipaun 6 years ago
- Fix #1416 - Wrap flow params into a Bundle to avoid a ClassNotFoundEx… (#1453) — committed to firebase/FirebaseUI-Android by dimipaun 6 years ago
- Fix for #1416: set the classloader at Intent creation time. This is because the exception happens _before_ we get to read the FlowParameters from the extras/bundle. — committed to dimipaun/FirebaseUI-Android by dimipaun 6 years ago
- Fix for #1416: set the classloader at Intent creation time. (#1470) This is because the exception happens _before_ we get to read the FlowParameters from the extras/bundle. — committed to firebase/FirebaseUI-Android by dimipaun 6 years ago
- Revert "Fix #1416 - Wrap flow params into a Bundle to avoid a ClassNotFoundEx… (#1453)" This reverts commit 1f3b18e1646704792804072e89f04d27b207e886. — committed to firebase/FirebaseUI-Android by samtstern 6 years ago
- Revert "fix #1416 - ClassNotFound for FlowParameters (#1451)" This reverts commit 0786884eab33c7a41091d66d20149bc25d49353a. — committed to firebase/FirebaseUI-Android by samtstern 6 years ago
- Revert failed fixes for #1416 (#1482) — committed to firebase/FirebaseUI-Android by samtstern 6 years ago
I got the same error
Tested on multiple devices. Failing on Samsung Note 4:
Model SM-N910 Android Version : 6.0.1