onDidFinishLoadingStyle
java.lang.IncompatibleClassChangeError: Found interface com.google.android.gms.location.FusedLocationProviderClient, but class was expected (declaration of 'com.google.android.gms.location.FusedLocationProviderClient'
продолжают быть bane of my existence вот уже восьмой год моей проклятой карьеры.
Почему у меня в тестовом проекте, куда я подкидываю наш сраный сдк, в котором есть зависимость от плей сервисов 17 версии (которая, в свою очередь, сама является транзитивной зависимостью из мапбокса) у меня не воспроизводится эта хуета и, более того, она оверрайдится в самом сдк до 21 версии (где этот ебучий класс уже сделали интерфейсом). Почему у клиентов клиентов вылетает эта хуита про 17 версию? Как такое может быть? Куда копать?
В External Libraries есть одинаковые зависимости разных версий?
нет, этот класс там в единственном экземпляре (но, опять-таки, на моём тестовом проекте. Наша сдк идёт транзитом в составе чьего-то другого сдк в третью прилагу 🤦♂️)
Ну, может быть, они по дороге затянули себе разные версии.
шадоу / фэт джары и прочая вот эта вся коричневая магия? Или как вообще такое возможно? До этого эта ошибка вылетала в рантайме, там просто несовместима была наша внутренняя зависимость с их новой и классной, а тут в чём может быть дело я вообще ума не приложу(
Я не думаю, что там фэт. Просто версии разъехались. Пробовал BOM?
А как понять "разъехались"? Не пробовал, даже не помню, что это, сейчас попробую, спасибо.
две либы используют разные версии разных артефактов, а у них есть общая зависимось
Они затянули другую версию либы. Там где-то поменялась сигнатура у чего-нибудь. Ваш код это вызывает, может быть даже опосредованно, и всё идёт по женской линии.
Хм. Вот у меня сдк, там мапбокс, которому нужна 17 версия, его мы вырубили ещё на стадии инициализации чтоб не дёргался, т.е. его в рантайме не вызывается. В билдскрипте явно прописана последняя версия. Почему у интеграторов всё равно юзает 17 версию с классами, если я вотпрямщас открыл тестовый проект и там эта либа 21, если я явно прописываю её такую в зависимостях? Вообще, я пересмотрел стек и там вызовы at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:90) at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102) А мы воллей вообще не используем. Может, меня просто жестоко пранканули, сказав, что это из-за нашей сдк у них сыпется прилага?
Обсуждают сегодня