3

Recently I started to observe a lot of exceptions of this kind. The classes that can not be casted to itself are injected by dagger. By the way, I'm using multidex build in gradle.

Log look like the following:

FATAL EXCEPTION: main
Process: com.ui.client.debug, PID: 22087
java.lang.ClassCastException: com.logic.feed.FeedManager cannot be cast 
to com.logic.feed.FeedManager 
at com.logic.topic.TopicHandler$$InjectAdapter.get(TopicHandler$$InjectAdapter.java:73)
at com.logic.topic.TopicHandler$$InjectAdapter.get(TopicHandler$$InjectAdapter.java:19)
at com.ui.client.module.MainActivityModule$$ModuleAdapter$ProvideTopicHandlerProvidesAdapter.get(MainActivityModule$$ModuleAdapter.java:1244)
at com.ui.client.module.MainActivityModule$$ModuleAdapter$ProvideTopicHandlerProvidesAdapter.get(MainActivityModule$$ModuleAdapter.java:1208)
at com.ui.topic.TopicScene$$InjectAdapter.injectMembers(TopicScene$$InjectAdapter.java:73)
at com.ui.topic.TopicScene$$InjectAdapter.injectMembers(TopicScene$$InjectAdapter.java:23)
at dagger.ObjectGraph$DaggerObjectGraph.inject(ObjectGraph.java:281)
at com.ui.core.base.BaseActivity.inject(BaseActivity.java:35)
at com.ui.core.base.BaseFragment.onActivityCreated(BaseFragment.java:54)
at android.app.Fragment.performActivityCreated(Fragment.java:2122)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.BackStackRecord.run(BackStackRecord.java:833)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:452)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5834)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
TpoM6oH
  • 8,385
  • 3
  • 40
  • 72
  • 1
    I don't know the specific cause here, but that type of error is usually caused by the class having been loaded in two different ClassLoaders. So I'm guessing that there's something wrong with the multidex configuration, causing multiple classloaders to be used. – GreyBeardedGeek Apr 09 '15 at 15:09

1 Answers1

2

If you still haven't figured a solution, it might be Samsung's faulty implementation of MultiDex on theEuropean variant of the Galaxy S5 on 5.0:

https://stackoverflow.com/a/29008480/477243

I've had plenty of similar crashes reported (ClassCastException on casting a class to itself).

Upon reading the linked answer I've checked the devices which were generating the crash, all of them were SM G900F on Android 5.0, which is a shame since my App is available only on UK and Netherlands and the GS5 is one of our top devices (11.5% of the users).

Community
  • 1
  • 1
tinsukE
  • 930
  • 9
  • 20