Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Solución de problemas y preguntas frecuentes para Unity y Firebase

Esta página ofrece sugerencias y solución de problemas para problemas específicos de Unity que puede encontrar al usar Firebase.

¿Tiene otros desafíos o no ve su problema descrito a continuación? Asegúrese de revisar el principal Firebase FAQ de Preguntas más pan-Firebase o productos específicos.

Compatibilidad con .NET cuando se usa Unity 2017.xy versiones posteriores

Firebase admite .NET 4.x como una opción de compilación experimental en Unity 2017 y versiones posteriores. Plugins firebase usan componentes del SDK Parse para proporcionar algunas clases .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK versión Firebase Unidad 5.4.0 y posteriores proporcionan plugins que son compatibles con cualquiera .NET o .NET 3.x 4.x en dotnet3 y dotnet4 directorios de la Unidad SDK Firebase.

Si importa un complemento de Firebase que es incompatible con la versión de .NET habilitada en su proyecto, verá errores de compilación de algunos tipos en el marco de .NET implementados por Parse SDK.

Para resolver el error de compilación, si está utilizando .NET 3.x:

  1. Elimine o deshabilite las siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Habilite las siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Para resolver el error de compilación, si está utilizando .NET 4.x:

  1. Elimine o deshabilite las siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Habilite las siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Si importa otro complemento de Firebase:

  • En su proyecto de Unidad, navegar a Activos> Juego Servicios Resolver> Versión Handler> actualización para habilitar los archivos DLL adecuados para cada proyecto.

Compilación de Unity 2017.1 IL2CPP en proyectos .NET 4.x

Firebase admite .NET 4.x como una opción de compilación experimental en Unity 2017 y versiones posteriores. Plugins firebase usan componentes del SDK Parse para proporcionar algunas clases .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK versión Firebase Unidad 5.4.0 y posterior proporciona DLL de reenvío de tipo que reenvían tipos parse (por ejemplo, de aplicación Parse de System.Threading.Tasks.Task ) para el marco .NET. Desafortunadamente, IL2CPP (un transpilador que convierte C # en C ++) que se envía en Unity 2017.1.x no procesa correctamente las DLL de reenvío de tipos, lo que genera errores de compilación similares a los siguientes:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Actualmente no hay ninguna solución disponible para los errores de compilación de .NET 4.x IL2CPP en Unity 2017.1, por lo que debe actualizar a Unity 2017.2 o posterior para usar .NET 4.x en proyectos compilados con IL2CPP.

Unity 2017.2 redes

Firebase Realtime Database crea conexiones de red TLS mediante la pila de redes .NET. La funcionalidad TLS se rompe en Unity 2017.2 cuando se usa .NET 4.6, lo que hace que el complemento Realtime Database falle en los editores y en el escritorio.

No existe una solución alternativa para este problema, por lo que debe usar una versión diferente de Unity, por ejemplo, la versión 2017.1 o 2017.3.

Falta el archivo de configuración de Firebase Android en Unity 2020

Con el fin de versiones de apoyo de la Unidad que no tienen la posibilidad de personalizar la acumulación Gradle, la herramienta de editor de Firebase genera Assets/Plugins/Android/Firebase/res/values/google-services.xml como un recurso Android para ser empaquetado en una Compilación de Android, de modo que el SDK de Firebase pueda usarlo para inicializar la instancia predeterminada de FirebaseApp.

En la Unidad de 2020, todos los recursos de Android deben estar en directorios con un .androidlib sufijo. Si su proyecto utiliza un SDK Firebase que genera una Assets/Plugins/Android/Firebase directorio, cambiar el nombre a Assets/Plugins/Android/Firebase.androidlib . Asegúrese de que contiene AndroidManifest.xml , project.properties y res/values/google-services.xml .

Un problema con dex único al crear una aplicación de Android

Mientras crea una aplicación de Android, puede encontrar un error de compilación relacionado con tener un solo archivo dex. El mensaje de error es similar al siguiente, si su proyecto está configurado para usar el sistema de compilación Gradle.

Cannot fit requested classes in a single dex file.

Dalvik Ejecutable ( .dex ) archivos se utiliza para mantener un conjunto de definiciones de clases y sus datos adjuntos asociados para aplicaciones de Android ( .apk ). Un solo archivo dex se limita a hacer referencia a 65,536 métodos. La compilación fallará si el número total de métodos de todas las bibliotecas de Android en su proyecto excede este límite.

Unidad introdujo Minificación en 2017,2, que utiliza Proguard (u otras herramientas en algunas versiones de la Unidad) que se deben eliminar código no utilizado, que puede reducir el número total de los métodos de referencia en un solo archivo de dex. La opción se encuentra en Configuración del reproductor> Android> Publishing Configuración> Minimizar. Las opciones pueden diferir en diferentes versiones de Unity, así que consulte la documentación oficial de Unity.

Si el número de métodos que se hace referencia todavía supera el límite, otra opción es permitir multidex . Hay varias formas de lograr esto en Unity:

  • Si Custom Gradle Template bajo Player Settings está activado, modificar mainTemplate.gradle .
  • Si utiliza Android Studio para crear el proyecto exportado, modificar de nivel de módulo build.gradle archivo.

Más detalles se pueden encontrar en la guía del usuario multidex .