Cette page propose des conseils et des solutions pour résoudre les problèmes spécifiques à Unity que vous pourriez rencontrer lors de l'utilisation de Firebase.
Vous rencontrez d'autres difficultés ou vous ne trouvez pas votre problème ci-dessous ? Consultez les questions fréquentes principales sur Firebase pour obtenir des réponses à d'autres questions fréquentes sur Firebase ou sur des produits spécifiques.
Problème lié à un seul fichier dex lors de la compilation d'une application Android
Lors de la compilation d'une application Android, vous pouvez rencontrer un échec de compilation lié à la présence d'un seul fichier DEX. Le message d'erreur ressemble à ceci si votre projet est configuré pour utiliser le système de compilation Gradle.
Cannot fit requested classes in a single dex file.
Les fichiers Dalvik Executable (.dex) sont utilisés pour stocker un ensemble de définitions de classe et leurs données associées pour les applications Android (.apk). Un seul fichier dex est limité à 65 536 méthodes. La compilation échouera si le nombre total de méthodes de toutes les bibliothèques Android de votre projet dépasse cette limite.
Unity a introduit la minimisation dans la version 2017.2, qui utilise Proguard (ou d'autres outils dans certaines versions d'Unity) pour supprimer le code inutilisé, ce qui peut réduire le nombre total de méthodes référencées dans un seul fichier dex. Cette option est disponible sous Player Settings > Android > Publishing Settings > Minify (Paramètres du lecteur > Android > Paramètres de publication > Minimiser). Les options peuvent différer selon la version d'Unity. Reportez-vous donc à la documentation Unity officielle.
Si le nombre de méthodes référencées dépasse toujours la limite, une autre option consiste à activer multidex. Il existe plusieurs façons de procéder dans Unity :
- Si
Custom Gradle TemplatesousPlayer Settingsest activé, modifiezmainTemplate.gradle. - Si vous utilisez Android Studio pour compiler le projet exporté, modifiez le fichier
build.gradleau niveau du module.
Pour en savoir plus, consultez le guide de l'utilisateur multidex.
Problèmes lors de la compilation pour Android avec minSdkVersion 23
Lorsque vous compilez pour Android, si vous ciblez minSdkVersion 23, l'étape de conversion au format .dex peut échouer, généralement dans la tâche Gradle ":launcher:mergeExtDexDebug", où un message d'erreur indique qu'il n'a pas été possible de transformer l'une des bibliothèques Android. Cela est dû à un bug dans l'outil dex par défaut du SDK Android, utilisé par la plupart des éditeurs Unity. Il peut être corrigé de différentes manières :
- Définissez
minSdkVersionsur 24. - Activez la minimisation Android dans Player Settings > Android > Publishing Settings > Minify (Paramètres du lecteur > Android > Paramètres de publication > Minimiser).
- Spécifiez une autre version de l'outil dex en ajoutant ceci à votre fichier
settingsTemplate.gradle:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problèmes lors de la compilation pour iOS avec CocoaPods
Lors de la compilation pour iOS, l'installation de CocoaPods peut échouer avec une erreur concernant les paramètres régionaux de la langue ou l'encodage UTF-8. Il existe actuellement plusieurs façons de contourner le problème.
Dans le terminal, exécutez directement
pod install, puis ouvrez le fichier xcworkspace obtenu.Passez à la version 1.10.2 de CocoaPods. Le problème n'existe que dans la version 1.11 et les versions ultérieures.
Dans votre fichier
~/.bash_profileou équivalent, ajoutezexport LANG=en_US.UTF-8.
Mettre à jour la version des SDK Unity Firebase
La procédure de mise à jour des versions des SDK Unity Firebase dépend de la manière dont ils ont été importés initialement. Voici les deux autres méthodes d'importation :
- Importation de fichiers
.unitypackagedans le répertoireAssets/de votre projet - Importer à l'aide d'Unity Package Manager (UPM)
- Il s'agit de la méthode recommandée pour gérer les packages dans Unity 2018.4 ou version ultérieure.
- Utilisez cette méthode pour faciliter les futures mises à jour de version et nettoyer votre répertoire
Assets/.
Dans votre projet Unity, vous ne devez utiliser qu'une seule méthode d'importation pour gérer tous vos packages Firebase. Les instructions ci-dessous peuvent être utilisées non seulement pour mettre à jour la version de packages individuels, mais aussi, si nécessaire, pour migrer la gestion des packages vers UPM (méthode d'importation recommandée).