Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Historial
Solía haber varios componentes de Google Play Services y paquetes NuGet:
- Google Play Services (Froyo)
- Google Play Services (Gingerbread)
- Google Play Services (ICS)
- Google Play Services (JellyBean)
- Google Play Services (KitKat)
Google solo envía dos archivos .jar para Google Play Services:
google-play-services-froyo.jar
google-play-services.jar
La discrepancia existía porque nuestras herramientas no indicaron a aapt.exe
correctamente cuál era el nivel máximo de API de recursos que se usaría para una aplicación determinada. Esto significa que recibimos errores de compilación al intentar usar el enlace de Google Play Services (KitKat) en un nivel de API inferior, como Gingerbread.
Unificación de Google Play Services
En versiones más recientes de Xamarin.Android, ahora se indica a aapt.exe
qué versión máxima de recursos se puede usar, por lo que este problema desaparece.
Esto significa que no hay ninguna razón real a fin de tener paquetes independientes para Gingerbread/ICS/JellyBean/KitKat (pero todavía necesitamos un enlace independiente para Froyo, ya que es un archivo de .jar totalmente diferente).
Para facilitar las cosas a los desarrolladores, ahora hemos unificado nuestros componentes y paquetes NuGet en dos:
- Google Play Services (Froyo) (enlaza
google-play-services-froyo.jar
) - Google Play Services (enlaza
google-play-services.jar
)
¿Cuál debe usarse?
En casi todos los casos, se debe usar Google Play Services. La única razón para usar el paquete (Froyo) es si se establece de forma activa el destino Froyo. La única razón por la que existe este archivo .jar independiente de Google es que Froyo está presente en un porcentaje tan pequeño de dispositivos que ellos mismos han decidido dejar de admitirlo, por lo que este archivo .jar es una instantánea inmovilizada y no compatible de Google Play Services.
Nota sobre Gingerbread
Gingerbread no tiene compatibilidad con Fragment de manera predeterminada y, debido a esto, algunas de las clases del enlace no se pueden usar en una aplicación en runtime en un dispositivo Gingerbread. Las clases como MapFragment
no funcionarán en Gingerbread y su variante compatible debe usarse en lugar de SupportMapFragment
. Es necesario que el desarrollador sepa cuál debe usar. Esta incompatibilidad se observa en Google en su documentación de Google Play Services.
¿Qué ocurre con los componentes o paquetes NuGet anteriores?
Como ya no son necesarios, hemos deshabilitado o eliminado de la lista los siguientes componentes y paquetes NuGet:
- Google Play Services (Gingerbread)
- Google Play Services (JellyBean)
- Google Play Services (KitKat)
El componente o NuGet de Google Play Services (ICS) existente se ha cambiado de nombre a Google Play Services y se mantendrá actualizado en el futuro. Todos los proyectos que hacen referencia a uno de los paquetes deshabilitados o eliminados de la lista deben actualizarse para usar este.
Los componentes deshabilitados siguen existiendo y deben poderse restaurar para los proyectos en los que todavía se hace referencia, a fin de evitar interrumpirlos. Del mismo modo, los paquetes NuGet eliminados de la lista siguen existiendo y se pueden restaurar. No se actualizarán en el futuro.