Настройка для разработки с помощью Cast Application Framework (CAF) для Android

Требования

Google Cast SDK для Android входит в состав SDK сервисов Google Play и не требует отдельной загрузки.

Примечание. Сервисы Google Play предоставляют доступ к различным API, которые позволяют создавать объявления, собирать аналитические данные, выполнять аутентификацию пользователей, интегрировать карты и многое другое. Подробнее о сервисах Google Play… Важно убедиться, что на устройстве пользователя установлена правильная версия APK-файла сервисов Google Play, поскольку обновления могут быть доступны не всем пользователям сразу.

Как добавить сервисы Google Play в проект

Выберите среду разработки ниже и добавьте сервисы Google Play в свой проект, следуя инструкциям.

Android Studio

Чтобы сделать API сервисов Google Play доступными для вашего приложения, выполните следующие действия:

  1. Откройте файл build.gradle в каталоге модуля приложения.

    Примечание. Проекты Android Studio содержат файл build.gradle верхнего уровня и файл build.gradle для каждого модуля. Убедитесь, что вы редактируете файл для модуля приложения. Подробнее о сборке проекта с помощью Gradle…

  2. Убедитесь, что google() есть в списке repositories.
    repositories {
        google()
    }
  3. Добавьте новое правило сборки в разделе 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.3.1'
        }

    Обязательно обновляйте номер версии при каждом обновлении сервисов Google Play.

    Примечание. Если количество ссылок на методы в вашем приложении превышает лимит в 65 000, при компиляции приложения может произойти сбой. Чтобы избежать этой проблемы, при компиляции приложения можно указать только те API сервисов Google Play, которые оно использует. Подробнее о том, как это сделать, рассказывается в разделе Выборочная компиляция API в исполняемый файл.

  4. Сохраните изменения и нажмите Sync Project with Gradle Files (Синхронизировать проект с файлами Gradle) на панели инструментов.

Другие IDE

Чтобы API сервисов Google Play стали доступны в вашем приложении:

  1. Скопируйте проект библиотеки из каталога <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ в каталог, где хранятся ваши проекты приложений Android.
  2. В проекте приложения укажите ссылку на проект библиотеки сервисов Google Play. Подробнее о том, как это сделать, читайте в статье Как ссылаться на проект библиотеки в командной строке.

    Примечание. Ссылаться нужно на копию библиотеки, которую вы скопировали в рабочую область разработки, а не на библиотеку в каталоге Android SDK.

  3. Добавив библиотеку сервисов 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