Предварительные требования
- Установите последнюю версию Android SDK с помощью Android SDK Manager .
- Установите последнюю версию библиотек AndroidX appcompat и mediarouter через Android SDK Manager .
- Установите последнюю версию Cast SDK из Google Play Services через Android SDK Manager .
SDK Google Cast для Android является частью SDK сервисов Google Play и не требует отдельной загрузки.
Примечание : Сервисы Google Play предоставляют доступ к ряду API для создания рекламы, сбора аналитических данных, аутентификации пользователей, интеграции карт и многого другого. Для получения дополнительной информации см. Обзор сервисов Google Play . Важно убедиться, что на устройстве пользователя установлен правильный APK-файл сервисов Google Play, поскольку обновления могут быть доступны не всем пользователям сразу.
Добавьте Google Play Services в свой проект.
Выберите свою среду разработки ниже и добавьте сервисы Google Play в свой проект, следуя предоставленным инструкциям.
Android Studio
Чтобы сделать API сервисов Google Play доступными для вашего приложения:
- Откройте файл
build.gradleв каталоге модуля вашего приложения.Примечание: Проекты Android Studio содержат файл
build.gradleверхнего уровня и файлbuild.gradleдля каждого модуля. Обязательно отредактируйте файл для модуля вашего приложения. Дополнительную информацию о Gradle см. в разделе «Создание проекта с помощью Gradle» . - Убедитесь, что
google()включена в списокrepositories.repositories {google() } - Добавьте новое правило сборки в раздел
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:22.2.0' }
Обязательно обновляйте этот номер версии каждый раз при обновлении сервисов Google Play.
Примечание: Если количество ссылок на методы в вашем приложении превышает лимит в 65 000 , компиляция приложения может завершиться неудачей. Вы можете попытаться решить эту проблему при компиляции приложения, указав только те 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 , добавьте следующие строки в файл. файл:
-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