I am working on updating an existing application in Marshmallow and just noticed that this message is in logcat when the application starts:
E/Parcel﹕ Class not found when unmarshalling: com.redacted.TheClass java.lang.ClassNotFoundException: com.redacted.TheClass.
This only happens on Samsung devices, not on LG and Motorola. After more research, I found that the problem is also present in Lollipop and thus is present in the supplied version of the application.
However, despite the fact that this is an exception, it does not seem to have a negative impact - the application has been tested on Lollipop and functions as expected on lines L and M.
Therefore, I would like to know if there are consequences for eliminating this problem? Is the application operational despite this probability of an exception, and if some sands move elsewhere, this may stop working?
Why not fix it ?? !! You all jump up and down to ask. The reason is that the application is not available in the application store, it is pre-installed in the roles of devices and the distribution of a new .apk for device manufacturers will delay the schedule for their creation Marshmallow roms. Therefore, I do not want to create a new .apk if it is not possible that the application may stop working, although it works fine with this problem.
In other words, I would like to know in detail what causes this error message, but, in particular, why the application continues to function, despite the fact that it is an exception to the OS.
Full stack trace:
11-24 09:03:43.065 3641-5600/? E/Parcel﹕ Class not found when unmarshalling: com.redacted.TheClass java.lang.ClassNotFoundException: com.redacted.TheClass at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at android.os.Parcel.readParcelableCreator(Parcel.java:2383) at android.os.Parcel.readParcelable(Parcel.java:2337) at android.os.Parcel.readValue(Parcel.java:2243) at android.os.Parcel.readArrayMapInternal(Parcel.java:2592) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.getString(BaseBundle.java:920) at android.content.Intent.getStringExtra(Intent.java:6171) at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2688) at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2127) at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6151) at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5928) at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3836) at android.os.Binder.execTransact(Binder.java:453) Caused by: java.lang.ClassNotFoundException: com.cequint.cityid.CityIdResponse at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at android.os.Parcel.readParcelableCreator(Parcel.java:2383) at android.os.Parcel.readParcelable(Parcel.java:2337) at android.os.Parcel.readValue(Parcel.java:2243) at android.os.Parcel.readArrayMapInternal(Parcel.java:2592) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.getString(BaseBundle.java:920) at android.content.Intent.getStringExtra(Intent.java:6171) at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2688) at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2127) at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6151) at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:5928) at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3836) at android.os.Binder.execTransact(Binder.java:453) Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
The class inherits from Parcelable and is used to store several int, booleans and Strings along with activity (declared as Class).
When the state machine wants to switch to a new action, it creates an instance of this class and sets the action, then passes it to the method as a parameter. The method then uses the class to create the intent to trigger this activity.