Auf dieser Seite finden Sie Tipps und Hinweise zur Fehlerbehebung bei Unity-Problemen. die Ihnen bei der Nutzung von Firebase begegnen können.
Sie haben andere Probleme oder können das unten beschriebene Problem nicht sehen? Achten Sie darauf, In den häufig gestellten Fragen zu Firebase finden Sie weitere Informationen zu Firebase und produktspezifische FAQs.
.NET-Kompatibilität bei Verwendung von Unity 2017.x und höher
Firebase unterstützt .NET 4.x als experimentelle Build-Option in Unity 2017 und . Firebase-Plug-ins verwenden Komponenten der Parse SDK, um einige .NET 4.x-Klassen in früheren Versionen von .NET
Daher bieten das Firebase Unity SDK Version 5.4.0
und höher Plug-ins, die
sind entweder mit .NET 3.x oder .NET 4.x in dotnet3
und dotnet4
kompatibel
des Firebase Unity SDK.
Wenn Sie ein Firebase-Plug-in importieren, das mit der .NET-Version nicht kompatibel ist aktiviert ist, werden Kompilierungsfehler bei einigen Typen in der .NET Framework, die vom Parse SDK implementiert werden.
So beheben Sie den Kompilierungsfehler, wenn Sie .NET 3.x verwenden:
- Entfernen oder deaktivieren Sie die folgenden DLLs für alle Plattformen:
Parse/Plugins/dotNet45/Unity.Compat.dll
Parse/Plugins/dotNet45/Unity.Tasks.dll
- Aktivieren Sie die folgenden DLLs für alle Plattformen:
Parse/Plugins/Unity.Compat.dll
Parse/Plugins/Unity.Tasks.dll
So beheben Sie den Kompilierungsfehler bei Verwendung von .NET 4.x:
- Entfernen oder deaktivieren Sie die folgenden DLLs für alle Plattformen:
Parse/Plugins/Unity.Compat.dll
Parse/Plugins/Unity.Tasks.dll
- Aktivieren Sie die folgenden DLLs für alle Plattformen:
Parse/Plugins/dotNet45/Unity.Compat.dll
Parse/Plugins/dotNet45/Unity.Tasks.dll
Wenn Sie ein anderes Firebase-Plug-in importieren:
- Gehen Sie in Ihrem Unity-Projekt zu Assets > Play Services-Resolver > Versions-Handler > Aktualisieren um die richtigen DLLs für Ihr Projekt zu aktivieren.
Unity 2017.1-IL2CPP-Kompilierung in .NET 4.x-Projekten
Firebase unterstützt .NET 4.x als experimentelle Build-Option in Unity 2017 und . Firebase-Plug-ins verwenden Komponenten des Parse SDK, um einige .NET 4.x-Klassen in früheren .NET-Versionen bereitzustellen.
Daher bietet das Firebase Unity SDK in Version 5.4.0 und höher den Typ
Weiterleitungs-DLLs, die Parse-Typen weiterleiten (z. B. die Parse-Implementierung von
System.Threading.Tasks.Task
) zum .NET Framework. Leider ist IL2CPP
(ein Transpiler, der C# in C++ umwandelt), der in Unity 2017.1.x ausgeliefert wird,
Typweiterleitungs-DLLs werden nicht korrekt verarbeitet, was zu Build-Fehlern führt,
etwa so:
Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>
Derzeit gibt es keine Behelfslösung für .NET 4.x-IL2CPP-Build-Fehler in Unity 2017.1. Sie müssen also ein Upgrade auf Unity 2017.2 oder höher durchführen, um .NET 4.x in Projekte, die mit IL2CPP kompiliert wurden.
Unity 2017.2-Netzwerk
Firebase Realtime Database erstellt TLS-Netzwerkverbindungen über das .NET-Netzwerk Stacks. TLS funktioniert in Unity 2017.2 fehlerhaft, wenn .NET 4.6 zu Das Plug-in Realtime Database schlägt in Editoren und auf dem Desktop fehl.
Für dieses Problem gibt es keine Problemumgehung. Sie müssen also eine andere Version von Unity, z. B. Version 2017.1 oder 2017.3.
Android-Konfigurationsdatei für Firebase fehlt in Unity 2020
Um Versionen von Unity zu unterstützen, die keine
den Gradle-Build anpassen, den das Firebase-Editor-Tool generiert,
Assets/Plugins/Android/Firebase/res/values/google-services.xml
als Android-Gerät
Ressource in einen Android-Build gepackt, damit das Firebase SDK
um die FirebaseApp-Standardinstanz zu initialisieren.
In Unity 2020 müssen sich alle Android-Ressourcen in Verzeichnissen mit dem Suffix .androidlib
befinden. Wenn Ihr Projekt ein Firebase SDK verwendet, das ein
Verzeichnis Assets/Plugins/Android/Firebase
, benennen Sie es in
Assets/Plugins/Android/Firebase.androidlib
. Achte darauf, dass sie Folgendes enthält:
AndroidManifest.xml
, project.properties
und
res/values/google-services.xml
Problem mit Single Dex beim Erstellen einer Android-App
Beim Erstellen einer Android-App können Build-Fehler auftreten, weil mit einer einzelnen DEX-Datei. Die Fehlermeldung sieht in etwa so aus, ist für die Verwendung des Gradle-Build-Systems konfiguriert.
Cannot fit requested classes in a single dex file.
Dalvik Executable-Dateien (.dex
) enthalten eine Reihe von Klassendefinitionen
und zugehörige Zusatzdaten für Android-Apps (.apk
). Ein einzelner Dex
Datei ist auf 65.536 Methoden beschränkt. Der Build schlägt fehl, wenn die Gesamtzahl der Methoden aus allen Android-Bibliotheken in Ihrem Projekt dieses Limit überschreitet.
Unity hat Minification eingeführt 2017.2, wobei Proguard (oder andere Tools in einigen Versionen von Unity) verwendet wird. um ungenutzten Code zu entfernen, wodurch sich die Gesamtzahl Methoden in einer einzelnen DEX-Datei. Die Option finden Sie unter Player-Einstellungen > Android > Veröffentlichungseinstellungen > Komprimieren. Die Optionen können sich in verschiedenen Unity-Versionen unterscheiden. Weitere Informationen finden Sie in der offiziellen Unity-Dokumentation.
Wenn die Anzahl der referenzierten Methoden immer noch den Grenzwert überschreitet, können Sie Folgendes tun:
um multidex
zu aktivieren. In Unity gibt es mehrere Möglichkeiten, dies zu tun:
- Wenn
Custom Gradle Template
unterPlayer Settings
aktiviert ist,mainTemplate.gradle
ändern. - Wenn Sie das exportierte Projekt mit Android Studio erstellen, ändern Sie
Datei
build.gradle
auf Modulebene.
Weitere Informationen finden Sie im Multidex-Nutzerhandbuch.
Unterstützung und Desugaring für Android-Builds in Unity 2017 und Unity 2018 (Firebase Unity SDK 8.0.0 und höher) mit Java 8
Im Mai 2021 (Firebase BoM v28.0.0) wurde die Desugarierung für alle Android-Bibliotheken in Firebase deaktiviert (siehe Versionshinweis). Wenn Sie eine Android-App mit dem Firebase Unity SDK (8.0.0 und höher) erstellen, wird möglicherweise der folgende Build-Fehler angezeigt:
> Error while dexing.
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
Diese Änderung betrifft nur Android-Builds in Unity 2017 und Unity 2018. In neueren Versionen von Unity wird der Block compileOptions
standardmäßig in Gradle-Builddateien hinzugefügt.
Führen Sie einen der folgenden Schritte aus, um diesen Build-Fehler in Unity 2017 und Unity 2018 zu beheben:
Fügen Sie Ihrer Gradle-Vorlage einen
compileOptions
-Block hinzu:- Verwenden Sie
Gradle
als Build-System. - Aktivieren Sie
Custom Gradle Template
unterPlayer Settings
. Fügen Sie die folgenden Zeilen zu
mainTemplate.gradle
(oder Modulebenebuild.gradle
, wenn Sie ein Projekt für Android Studio exportieren) hinzu:android { compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } }
- Verwenden Sie
Alternativ können Sie die minSdkVersion für Ihr Android-Projekt auf 26 oder höher erhöhen.
Weitere Informationen finden Sie unter Android-Fehlerbehebung – Build-Fehler desugarierens.
Probleme beim Entwickeln für iOS mit CocoaPods
Bei der Entwicklung für iOS kann die CocoaPod-Installation mit einer Fehlermeldung zur oder die UTF-8-Codierung verwenden. Es gibt derzeit mehrere Möglichkeiten, das Problem zu umgehen.
Führen Sie im Terminal
pod install
direkt aus und öffnen Sie das resultierende xcworkspace-Datei.Führen Sie ein Downgrade von CocoaPods auf 1.10.2 aus. Das Problem besteht nur in Version 1.11 und höher.
Fügen Sie
export LANG=en_US.UTF-8
zu Ihrem~/.bash_profile
oder einem ähnlichen Tool hinzu.
Version der Firebase Unity SDKs aktualisieren
Die Aktualisierung der Firebase Unity SDKs hängt davon ab, wie sie die ursprünglich importiert wurden. Es gibt zwei alternative Importmethoden:
.unitypackage
-Dateien in dasAssets/
-Verzeichnis Ihres Projekts importieren- Importieren mithilfe der
Unity-Paketmanager
(UPM)
- Dies ist die empfohlene Methode zum Verwalten von Paketen in Unity 2018.4+.
- Mit dieser Methode können Sie zukünftige Versionsupdates vereinfachen und Ihren
Assets/
Directory Cleaner.
In Ihrem Unity-Projekt sollten Sie nur eine Importmethode verwenden, um alle Firebase-Pakete zu verwalten. Anhand der folgenden Anleitung können Sie nicht nur die Version einzelner Pakete und bei Bedarf auch zum Migrieren von Paketen mit UPM (empfohlene Importmethode) verknüpfen.