Как включить AAR в модуль динамических функций?

Я хочу поместить большую библиотеку AAR (crypteriumsdk) в модуль динамических функций, который можно установить по запросу. Но когда я это делаю, он не может найти свои ресурсы (тему):

стиль ресурса / CrypteriumTheme (также известный как com.crypter.cryptocyrrency: style / CrypteriumTheme) не найден.

Я также добавил tools:replace="android:theme" в application в основном манифесте (модуле приложения).

Что здесь не так?

введите описание изображения здесь

введите описание изображения здесь

settings.gradle:

include ':crypteriumsdk'
include ':wallet'
include ':app'

wallet.gradle:

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation project(":app")
    implementation project(':crypteriumsdk') // added the library here
}

person c0dehunter    schedule 12.08.2020    source источник


Ответы (1)


Манифест объединяется слишком рано, чтобы фактическая реализация темы была доступна на устройстве пользователя.

Вы можете добавить это в файл styles.xml вашего базового модуля:

    <style name="CrypteriumTheme" />

Это позволяет найти идентификатор ресурса стиля во время установки и перезаписать его после того, как модуль станет доступен и запущен.

См. этот образец за рабочую реализацию.

person keyboardsurfer    schedule 14.08.2020
comment
Спасибо, это работает! Вы, может быть, знаете, что я могу сделать с ресурсами с таким же именем из сторонних библиотек? Например. мы используем библиотеку A в нашем базовом модуле (приложении), а затем библиотеку B в модуле динамических функций, и обе библиотеки имеют некоторый ресурс макета с тем же именем. Это вызывает ошибку при попытке создать пакет: Modules 'base' and 'dynamicfeature' contain entry 'res/layout/design_bottom_navigation_item.xml' with different content.. Я знаю, что это оффтоп для этого вопроса, но был бы очень признателен за ваш опыт по этому поводу :) - person c0dehunter; 15.08.2020
comment
Вот вопрос по этому поводу: stackoverflow.com/questions/61702779/ - person c0dehunter; 17.08.2020
comment
Спасибо, что подняли этот вопрос. Я добавил ответ на вопрос. - person keyboardsurfer; 17.08.2020