Я пытаюсь преобразовать приложение Android в модуль lib, не копируя источник.Я сделал это (изменил файл build.gradle), и он синхронизируется и компилируется, но когда я добавляю зависимость к результирующему файлу AAR в другой проект (где я хочу использовать эту библиотеку), сборка завершается неудачно, и связывание ресурсов не удается.
Я не могу понять, почему:
оригинальное приложение создает и запускает
lib (сборка из приложения) строит
проект, который использует AAR из этой библиотеки, не создает и обнаруживает ошибку в этом AAR.
Например, одна из возможных ошибок:
Android resource linking failed
error: resource style/TextAppearance.Design.Tab (aka bv.dev.aarlibtester:style/TextAppearance.Design.Tab) not found.
error: failed linking references.
Таким образом, он говорит, что ресурсы не найдены, и указывает на зависимости, которые я использовал в этой библиотеке (в данном примере это design
)
Я создал тестовый проект, чтобы продемонстрировать это на простом примере.
Github
aar-res-app
- это простой проект приложения, в котором используется design
зависимость
aar-res-lib
- библиотека, созданная из этого проекта (конвертированная)
aar-res-lib-tester
- простой проект приложения, использующий that lib.
В настоящее время я переименовал пакет библиотеки, чтобы он не совпадал с пакетом приложения, и использовал jar
вместо aar
.
Я создаю его, используя Gradle -> root -> Tasks -> Other -> createFullJarRelease
.
Результат в Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar