Странное ClassCastException в findViewById
Я наблюдаю странное исключение, брошенное в линию:
viewPager = (ViewPager) view.findViewById(R.id.pager);
исключение выглядит следующим образом:
java.lang.ClassCastException: android.support.v4.view.ViewPager cannot be cast to android.support.v4.view.ViewPager
Я не могу воспроизвести это, но это иногда случается согласно журналам.
Приложение использует официальную мультидексную сборку с Gradle.
1 ответ
Решение
Согласно JLS, ClassCastException
происходит, когда вы пытаетесь привести один класс к другому, что совершенно очевидно.
Что не так очевидно, так это определение класса:
- классы должны быть как класса, так и интерфейса или типа массива,
- они должны иметь одинаковое двоичное имя,
- они должны быть загружены одним и тем же
ClassLoader
В вашем случае несколько ClassLoader
s, скорее всего, загрузит тот же класс.