библиотека из гугл сервисов

Я хочу создать библиотеку (mylib.aar), которая получает рекламный идентификатор Android.
в базовом проекте нужны зависимости, как показано ниже:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'] )
implementation 'com.android.support:appcompat-v7:25.+'
implementation 'com.google.android.gms:play-services-ads:9.2.1'
}

и он отлично работает!
ПРОБЛЕМА заключается в том, что когда я создаю выпуск *.aar из библиотеки, как показано на изображении ниже, а затем использую экспортированный файл mylib.aar в примере проекта, он не работает!

вот как я создаю релиз mylib.aar:

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

как я уже сказал, новое приложение отображает сообщение к сожалению, остановлено, и оно показывает мне ошибку:

java.lang.NoClassDefFoundError: com.google.android.gms.common.GoogleApiAvailability

как я могу это решить?

ПРИМЕЧАНИЕ. один из способов — импортировать файл *.jar нужной вам зависимости и прочитать его из gradle, он работает, но нет полного google-play-services.jar для создания AdID.


person amirhosein    schedule 14.06.2018    source источник


Ответы (1)


Если вы создаете библиотеку, вы должны указать зависимости play-services следующим образом:

dependencies {
    provided 'com.google.android.gms:play-services-ads:15.0.1'
}

provided означает, что вы ожидаете, что разработчик, использующий вашу библиотеку, также добавит эту зависимость.

И вам решать, как обрабатывать случаи, когда эта зависимость недоступна (не была добавлена ​​разработчиком с использованием вашей библиотеки).

Также проверьте это: В чем разница между предоставленными файлами и компиляцией < /а>

person Arseny Levin    schedule 14.06.2018