Android - переопределение класса удалено из библиотеки поддержки (AsyncTaskCompat)

Во-первых, извинения, если я не включил всю необходимую информацию для ответа на этот вопрос. Я немного новичок в разработке для Android и все еще разбираюсь в инструментах сборки, уровнях API и т. Д. Поэтому, пожалуйста, дайте мне знать, если есть какая-то дополнительная информация, которую я должен предоставить, чтобы помочь вам помочь мне!

После обновления моего проекта Android скомпилировать версию SDK до 27, я понял, что версия 27.0.2 из com.android.support:support-v4 больше не включает AsyncTaskCompat (этот класс устарел и удален).

У меня есть сторонняя библиотека, которая не является открытым исходным кодом, не легко заменяется, больше не поддерживается и все еще использует AsyncTaskCompat,

поскольку AsyncTaskCompat с открытым исходным кодом, я думал, что я мог бы просто как-то ввести его заново, переопределив его в моем проекте.

Я попытался переопределить его в рамках моего проекта в com.android.support.v4.os но даже если проект компилируется без каких-либо проблем, при запуске раздела приложения, использующего стороннюю библиотеку, происходит сбой с ошибкой класса не найден для AsyncTaskCompat,

Есть ли что-то очевидное, что я могу упустить?

2 ответа

Решение

Нет необходимости добавлять определенный модуль библиотеки Android.

Добавляйте нижеуказанные классы в свой проект, используя имя пакета "android.support.v4.os":

Отвечая на мой собственный вопрос здесь после очередного дня взлома.

Фактически возможно повторно реализовать эти устаревшие / удаленные классы таким образом, чтобы зависимость могла их использовать.

Шаги описаны здесь на случай, если кому-то понадобится это в будущем.

  1. Создайте новый модуль Android Library для вашего приложения
  2. Переопределите отсутствующие классы, используя соответствующее пространство имен

В моем случае мне нужно было переопределить android.support.v4.os.AsyncTaskCompat который с открытым исходным кодом, так что все, что мне нужно было сделать, это скопировать код из исходного кода.

  1. Добавьте модуль в качестве зависимости вашего основного модуля приложения.
Другие вопросы по тегам