26

This exception appears when screen rotate, during the call to: onCreate() and its super method: super.onCreate(savedInstanceState);

It seems to be related or the same as this thread : Why is there ClassNotFoundException when i change screen orientation? but unfortunatly, the proposed solutions does not work. Removing the AdView does not change anything.

Here is the full stack:

E/Parcel: Class not found when unmarshalling: androidx.fragment.app.FragmentManagerState
    java.lang.ClassNotFoundException: androidx.fragment.app.FragmentManagerState
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)
        at android.os.Parcel.readParcelableCreator(Parcel.java:2827)
        at android.os.Parcel.readParcelable(Parcel.java:2781)
        at android.os.Parcel.readValue(Parcel.java:2684)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3053)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
        at android.os.BaseBundle.unparcel(BaseBundle.java:232)
        at android.os.Bundle.getBundle(Bundle.java:917)
        at gh.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):32)
        at com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):88)
        at cp.a(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):169)
        at j.onTransact(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):4)
        at android.os.Binder.transact(Binder.java:675)
        at com.google.android.gms.internal.measurement.zzq.zza(Unknown Source:20)
        at com.google.android.gms.internal.measurement.zzdp.onActivityCreated(Unknown Source:144)
        at com.google.android.gms.internal.measurement.zzex.zzgd(Unknown Source:4)
        at com.google.android.gms.internal.measurement.zzea$zzb.run(Unknown Source:11)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.ClassNotFoundException: androidx.fragment.app.FragmentManagerState
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:1346)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:1406)
        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:2827) 
        at android.os.Parcel.readParcelable(Parcel.java:2781) 
        at android.os.Parcel.readValue(Parcel.java:2684) 
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3053) 
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288) 
        at android.os.BaseBundle.unparcel(BaseBundle.java:232) 
        at android.os.Bundle.getBundle(Bundle.java:917) 
        at gh.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):32) 
        at com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):88) 
        at cp.a(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):169) 
        at j.onTransact(:com.google.android.gms.dynamite_measurementdynamite@17122081@17.1.22 (100400-245988633):4) 
        at android.os.Binder.transact(Binder.java:675) 
        at com.google.android.gms.internal.measurement.zzq.zza(Unknown Source:20) 
        at com.google.android.gms.internal.measurement.zzdp.onActivityCreated(Unknown Source:144) 
        at com.google.android.gms.internal.measurement.zzex.zzgd(Unknown Source:4) 
        at com.google.android.gms.internal.measurement.zzea$zzb.run(Unknown Source:11) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

there's an additional warning for W/FA-ADS

W/FA-Ads: Error with data collection. Data lost.
    android.os.BadParcelableException: ClassNotFoundException when unmarshalling: androidx.fragment.app.FragmentManagerState
        at android.os.Parcel.readParcelableCreator(Parcel.java:2917)
        at android.os.Parcel.readParcelable(Parcel.java:2843)
        at android.os.Parcel.readValue(Parcel.java:2746)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3115)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:273)
        at android.os.BaseBundle.unparcel(BaseBundle.java:226)
        at android.os.Bundle.getBundle(Bundle.java:916)
        at kh.a(:com.google.android.gms.dynamite_measurementdynamite@19275051@19.2.75 (040408-269183835):35)
        at jz.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@19275051@19.2.75 (040408-269183835):22)
        at com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.onActivityCreated(:com.google.android.gms.dynamite_measurementdynamite@19275051@19.2.75 (040408-269183835):129)
        at cq.a(:com.google.android.gms.dynamite_measurementdynamite@19275051@19.2.75 (040408-269183835):160)
        at j.onTransact(:com.google.android.gms.dynamite_measurementdynamite@19275051@19.2.75 (040408-269183835):4)
        at android.os.Binder.transact(Binder.java:627)
        at com.google.android.gms.internal.measurement.zzb.zza(Unknown Source:20)
        at com.google.android.gms.internal.measurement.zzm.onActivityCreated(Unknown Source:144)
        at com.google.android.gms.internal.measurement.zzbd.zzf(Unknown Source:4)
        at com.google.android.gms.internal.measurement.zzz$zzb.run(Unknown Source:11)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
Angel Koh
  • 12,479
  • 7
  • 64
  • 91
Cyrille
  • 329
  • 3
  • 11
  • 1
    maybe it's a bug on `Oppo` device. Here's the related issue: https://issuetracker.google.com/issues/135627416 – Kingfisher Phuoc Sep 18 '19 at 03:19
  • I've got a Samsung Galaxy S10. Do you think the ROM is bugged too ? – Cyrille Sep 18 '19 at 13:16
  • @Cyrille Do you already know where the exception comes from, and/or how to prevent it? I get exact same exception on configuration change and activity recreate. It doesn't seem to break anything, but I would rather prevent it from happening. – Bastiaan van den Berg Nov 21 '19 at 10:24
  • I still don't know, i wil try with another device during christmas. – Cyrille Nov 22 '19 at 19:04

3 Answers3

2

Your source code is obfuscated using proguard .

Are your sure "androidx.fragment.app.FragmentManagerState" class is excluded from proguard.

if not please add & try it

-keep class * implements android.os.Parcelable { 
   public static final android.os.Parcelable$Creator *; 
}
Rajesh Gopu
  • 863
  • 9
  • 33
1

Try adding implementation 'androidx.fragment:fragment:1.2.0' into build.gradle. It helped me.

By providing the implementation of androidx.fragment.app.FragmentManagerState this problem disappears.

Note that version(1.2.0) you want to use may differ(newer/older)

Amirr0r
  • 290
  • 3
  • 8
  • I just try with 1.2.1 version, but I have the exact same error – Cyrille Feb 06 '20 at 17:25
  • 1
    I just have found that there is another exception before this one. This one is generated when the fragment state is going to be restored. I was using android studio with opened logcat with enabled filtering of logs from my application (Show only selected application). When I disabled that filter i have discovered another exception. – Amirr0r Feb 18 '20 at 12:07
  • Which exception ? I saw nothing on my side. – Cyrille Feb 19 '20 at 13:53
1

I had this exception and it took me a while to figure out what happened. I believe my situation is exactly the same as what @Amirr0r mentioned in his comment, so it may be worthwhile to report it here. The key is displaying everything in Logcat window with "No Filters". There should be a crashing exception or ANR before this odd exception. In my case, it is an ANR caused by a foreground service. Once that ANR was taken care of, this problem is gone.

Hong
  • 17,643
  • 21
  • 81
  • 142