Используйте плагин Google Play Services Gradle в модуле библиотеки - PullRequest
0 голосов
/ 12 июня 2019

Я выполняю рефакторинг своего монолитного приложения в приложение с несколькими модулями, и у меня есть проблема с подключаемым плагином Google Play Services. Я использую некоторые функции сервисов воспроизведения, такие как Карты или Google Login, для которых нужны некоторые API-ключи или идентификаторы клиентов, которые удобно генерируются подключаемым модулем GPS для ресурсов Android, и я могу использовать их в своем коде. Однако, если я поставлю эту магическую линию

apply plugin: 'com.google.gms.google-services'

в конец моего base модуля build.gradle Я получаю загадочную ошибку


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':base'.
> java.lang.NullPointerException

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

CONFIGURE FAILED in 0s
Cause: java.lang.NullPointerException

Я прочитал некоторые темы, которые я должен применить этот плагин к модулю приложения верхнего уровня. Но как мне получить доступ к моим генерируемым ресурсам, которые предоставляет плагин в моих модулях / библиотеках?

1 Ответ

0 голосов
/ 14 июня 2019

В модуле библиотеки вы должны добавить зависимости сервиса Google Play:

   dependencies {
           api 'com.google.android.gms:play-services-auth:16.0.1'
           api 'com.google.android.gms:play-services-games:17.0.0'
        }

Отправьте это, вы добавите зависимости в модуль приложения:

 dependencies {
       api project(':yourlibrary')
    }

В нижней части модуля приложения добавьте плагин

apply plugin: 'com.google.gms.google-services'

Убедитесь, что в settings.gradle есть и ваша библиотека:

include ':app', ':yourlibrary'

А также добавить зависимость на уровне вашего проекта gradle

   classpath 'com.google.gms:google-services:4.2.0'

Убедитесь, что у вас есть google-services.json в каталоге app / (в корне модуля приложения Android Studio)

Я считаю, что это должно работать. Таким образом, вы можете получить доступ к сервисам Google Play в своем приложении из модуля библиотеки.

Также добавьте

dependencies {
   api project(':yourlibrary')
}

любому другому модулю, которому нужны сервисы воспроизведения, если они не зависят от модуля приложения.

Если это не работает, не могли бы вы проинформировать меня больше о вашем случае использования?

...