Приложение и библиотека Android, которые используют Glide - appPackage1.GlideRequests не могут быть преобразованы в appPackage2.GlideRequests.
Я надеюсь, что кто-то сталкивался с этим раньше, и это просто легкая обстановка, по которой я скучаю. По сути, я создал библиотеку Kotlin, которая использует Glide и использует кинжал для настройки моего экземпляра glide в этой библиотеке. Эта библиотека сама по себе и в фиктивном приложении работает отлично, никаких проблем.
У меня есть старый Java-проект, который я тестирую с использованием этой библиотеки. Все выглядит нормально, за исключением случаев, когда я нажимаю на экран с функциональностью Glide. Glide используется и в приложении, и в библиотеке, и они, кажется, сталкиваются.
Это ошибка:
java.lang.ClassCastException: appPackage1.Utilities.GlideRequests cannot be cast to appPackage2.di.module.GlideRequests
at appPackage2.di.module.GlideApp.with(GlideApp.java:88)
В старом Java-приложении Glide существует как:
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}
В моей библиотеке Kotlin Glide существует как:
@GlideModule
class AppGlideModule : AppGlideModule()
И он выдает ошибку, когда она вызывается, как показано ниже, из моей библиотеки:
GlideApp.with(requireContext()).load
1 ответ
Похоже, мне нужно было покопаться в документации чуть ближе.
http://bumptech.github.io/glide/doc/configuration.html
Избегайте AppGlideModule в библиотеках
Библиотеки не должны включать реализации AppGlideModule. Это предотвратит любые приложения, зависящие от библиотеки, от управления их зависимостями или настройки таких параметров, как размеры и расположение кеша Glide.
Кроме того, если две библиотеки включают AppGlideModules, приложения не смогут скомпилироваться, если они зависят от обоих, и будут вынуждены выбрать одну или другую другую.
Это означает, что библиотеки не смогут использовать сгенерированный API Glide, но загрузка с RequestOptions все равно будет работать нормально (примеры см. На странице параметров).
Также уместная проблема с Github: https://github.com/bumptech/glide/issues/2393
Надеюсь, если кто-то еще столкнется с этим, этот ответ поможет.