Немного предыстории (не имеет прямого отношения, поскольку мой вопрос довольно общий): я хочу использовать библиотеку Android ROME Feed Reader для анализа RSS-канала с мультимедийным контентом. Но ROME не поддерживает медиафайлы «из коробки», поэтому я хочу использовать медиа-плагин, который поставляется в виде отдельного JAR-файла и основан на исходной библиотеке.
Итак, у меня есть два JAR-файла (для которых у меня нет исходного кода), и мои зависимости gradle выглядят так:
dependencies {
compile files('libs/android-rome-feed-reader-1.0.0.jar')
compile files('libs/mediarss-0.2.3.jar')
}
Проблема в том, что имена пакетов из версии ROME для Android имеют префикс com.google.code.rome.android.repackaged.
по отношению к исходной библиотеке.
Например, библиотека Android ROME содержит следующий интерфейс:
package com.google.code.rome.android.repackaged.com.sun.syndication.feed.module;
public interface Module { /* ... */ }
В то время как все классы в медиа-плагине ссылаются на оригинальные канонические имена:
public interface MediaModule extends com.sun.syndication.feed.module.Module { /* ... */ }
Вполне естественно, что компиляция не выполняется:
Error:(69, 34) error: cannot access Module
class file for com.sun.syndication.feed.module.Module not found
Есть ли обходной путь для этого? Можно ли как-то статически изменить канонические имена для всех классов в библиотеке? Или есть какое-то другое решение?
Спасибо!