Предварительные условия
- Установите последнюю версию Android SDK с помощью Android SDK Manager .
- Установите последнюю версию библиотек AndroidX appcompat и mediarouter через Android SDK Manager .
- Установите последнюю версию Cast SDK в сервисах Google Play через Android SDK Manager .
Google Cast SDK для Android является частью SDK сервисов Google Play, и его не нужно загружать отдельно.
Примечание . Сервисы Google Play предоставляют вам доступ к ряду API-интерфейсов для создания рекламы, сбора аналитики, аутентификации пользователей, интеграции карт и многого другого. Дополнительную информацию см. в разделе Обзор сервисов Google Play . Важно убедиться, что на устройстве пользователя установлен правильный APK-файл сервисов Google Play, поскольку обновления могут не доходить до всех пользователей сразу.
Добавьте сервисы Google Play в свой проект
Выберите среду разработки ниже и добавьте сервисы Google Play в свой проект, выполнив указанные шаги.
Android-студия
Чтобы сделать API сервисов Google Play доступными для вашего приложения:
- Откройте файл
build.gradle
в каталоге модуля приложения.Примечание. Проекты Android Studio содержат файл
build.gradle
верхнего уровня и файлbuild.gradle
для каждого модуля. Обязательно отредактируйте файл модуля вашего приложения. Дополнительную информацию о Gradle см. в разделе «Создание проекта с помощью Gradle» . - Убедитесь, что
google()
включен в списокrepositories
.repositories {
- Добавьте новое правило сборки в разделе
dependencies
для последней версииplay-services
. Например:apply plugin: 'com.android.application' ... dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.mediarouter:mediarouter:1.2.5' implementation 'com.google.android.gms:play-services-cast-framework:21.5.0' }
Обязательно обновляйте этот номер версии каждый раз при обновлении сервисов Google Play.
Примечание. Если количество ссылок на методы в вашем приложении превышает предел в 65 КБ , ваше приложение может не скомпилироваться. Эту проблему можно решить при компиляции приложения, указав только конкретные API-интерфейсы сервисов Google Play, которые использует ваше приложение, а не все из них. Информацию о том, как это сделать, см. в разделе Выборочная компиляция API в исполняемый файл .
- Сохраните изменения и нажмите «Синхронизировать проект с файлами Gradle» на панели инструментов.
Другая IDE
Чтобы сделать API сервисов Google Play доступными для вашего приложения:
- Скопируйте проект библиотеки из
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
в папку, где вы храните свои проекты приложений для Android. - В проекте приложения укажите проект библиотеки сервисов Google Play. Дополнительную информацию о том, как это сделать, см. в разделе «Ссылка на библиотечный проект в командной строке» .
Примечание. Вы должны ссылаться на копию библиотеки, которую вы скопировали в рабочую область разработки. Не следует ссылаться на библиотеку непосредственно из каталога Android SDK.
- После добавления библиотеки сервисов Google Play в качестве зависимости для проекта вашего приложения откройте файл манифеста вашего приложения и добавьте следующий тег в качестве дочернего элемента
<application>
:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Настроив проект для ссылки на проект библиотеки, вы можете приступить к разработке функций с помощью API сервисов Google Play .
Создать исключение Proguard
Чтобы запретить ProGuard удалять необходимые классы, добавьте следующие строки в файл/proguard-project.txt
:
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames class * implements android.os.Parcelable -keepclassmembers class * implements android.os.Parcelable { public static final *** CREATOR; } -keep @interface android.support.annotation.Keep -keep @android.support.annotation.Keep class * -keepclasseswithmembers class * { @android.support.annotation.Keep <fields>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <methods>; } -keep @interface com.google.android.gms.common.annotation.KeepName -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keep @interface com.google.android.gms.common.util.DynamiteApi -keep public @com.google.android.gms.common.util.DynamiteApi class * { public <fields>; public <methods>; } -dontwarn android.security.NetworkSecurityPolicy