Configuración para desarrollar con el framework de aplicaciones de Cast (CAF) para Android

Requisitos previos

El SDK de Google Cast para Android forma parte del SDK de Servicios de Google Play y no necesita descargarse por separado.

Nota: Los Servicios de Google Play te brindan acceso a un rango de API para crear anuncios, recopilar estadísticas, autenticar usuarios, integrar mapas y mucho más. Para obtener más información, consulta Descripción general de los Servicios de Google Play. Es importante que te asegures de instalar el APK de Servicios de Google Play correcto en el dispositivo del usuario, ya que es posible que las actualizaciones no lleguen a todos los usuarios de inmediato.

Agrega Servicios de Google Play a tu proyecto

Selecciona el entorno de desarrollo a continuación y agrega los Servicios de Google Play a tu proyecto mediante los pasos que se proporcionan.

Android Studio

Para que las API de los Servicios de Google Play estén disponibles en tu app, haz lo siguiente:

  1. Abre el archivo build.gradle dentro del directorio del módulo de la aplicación.

    Nota: Los proyectos de Android Studio contienen un archivo build.gradle de nivel superior y un archivo build.gradle para cada módulo. Asegúrate de editar el archivo para el módulo de tu aplicación. Consulta Cómo compilar tu proyecto con Gradle para obtener más información sobre Gradle.

  2. Verifica que google() esté incluido en el repositories de la lista.
    repositories {
        google()
    }
    
  3. Agrega una regla de compilación nueva en dependencies para la versión más reciente de play-services. Por ejemplo:
    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.2.0'
        }
    

    Asegúrate de actualizar este número de versión cada vez que se actualice Play Services.

    Nota: Si la cantidad de referencias de métodos en tu app supera el límite de 65,000, es posible que no se compile la app. Para mitigar este problema cuando compilas tu app, especifica solo las API específicas de los Servicios de Google Play que usa tu app, en lugar de todas ellas. Para obtener información sobre cómo hacerlo, consulta Compila API de forma selectiva en tu ejecutable.

  4. Guarda los cambios y haz clic en Sync Project with Gradle Files en la barra de herramientas.

Otro IDE

Para que las API de los Servicios de Google Play estén disponibles en tu app, haz lo siguiente:

  1. Copia el proyecto de biblioteca de <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ en la ubicación en la que conserves los proyectos de tu app para Android.
  2. En el proyecto de tu app, haz referencia al proyecto de biblioteca de Servicios de Google Play. Consulta Cómo hacer referencia a un proyecto de biblioteca en la línea de comandos para obtener más información sobre cómo hacerlo.

    Nota: Debes hacer referencia a una copia de la biblioteca que copiaste en tu lugar de trabajo de desarrollo, no debes hacer referencia a ella directamente desde el directorio del SDK de Android.

  3. Después de agregar la biblioteca de Servicios de Google Play como dependencia para el proyecto de tu app, abre el archivo de manifiesto de la app y agrega la siguiente etiqueta como elemento secundario del elemento <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

Una vez que hayas configurado tu proyecto para que haga referencia al proyecto de biblioteca, podrás comenzar a desarrollar funciones con las API de los Servicios de Google Play.

Cómo crear una excepción Proguard

Para evitar que ProGuard quite las clases requeridas, agrega las siguientes líneas al archivo /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