Auf dieser Seite finden Sie Tipps und Informationen zur Fehlerbehebung für Unity-spezifische Probleme, die bei der Verwendung von Firebase auftreten können.
Sie haben andere Probleme oder können das unten beschriebene Problem nicht sehen? Weitere Firebase- oder produktspezifische FAQs finden Sie in den allgemeinen Firebase-FAQs.
Problem mit Single-Dex beim Erstellen einer Android-App
Beim Erstellen einer Android-App kann ein Build-Fehler auftreten, der mit einer einzelnen DEX-Datei zusammenhängt. Die Fehlermeldung sieht in etwa so aus, wenn Ihr Projekt für die Verwendung des Gradle-Build-Systems konfiguriert ist.
Cannot fit requested classes in a single dex file.
Dalvik Executable-Dateien (.dex) enthalten eine Reihe von Klassendefinitionen und die zugehörigen Zusatzdaten für Android-Anwendungen (.apk). Eine einzelne DEX-Datei darf nur auf 65.536 Methoden verweisen. Der Build schlägt fehl, wenn die Gesamtzahl der Methoden aus allen Android-Bibliotheken in Ihrem Projekt dieses Limit überschreitet.
Unity hat Minification in Version 2017.2 eingeführt. Dabei wird Proguard (oder in einigen Unity-Versionen andere Tools) verwendet, um nicht verwendeten Code zu entfernen. So kann die Gesamtzahl der referenzierten Methoden in einer einzelnen DEX-Datei reduziert werden. Sie finden die Option unter Player Settings > Android > Publishing Settings > Minify (Player-Einstellungen > Android > Veröffentlichungseinstellungen > Minimieren). Die Optionen können sich in verschiedenen Versionen von Unity unterscheiden. Sehen Sie daher in der offiziellen Unity-Dokumentation nach.
Wenn die Anzahl der referenzierten Methoden das Limit weiterhin überschreitet, können Sie multidex aktivieren. Dafür gibt es in Unity mehrere Möglichkeiten:
- Wenn
Custom Gradle TemplateunterPlayer Settingsaktiviert ist, ändern SiemainTemplate.gradle. - Wenn Sie Android Studio zum Erstellen des exportierten Projekts verwenden, müssen Sie die Datei
build.gradleauf Modulebene ändern.
Weitere Informationen finden Sie im Nutzerhandbuch zu Multidex.
Probleme beim Erstellen von Android-Apps mit minSdkVersion 23
Wenn Sie für Android entwickeln und minSdkVersion 23 als Ziel verwenden, kann der Dexing-Schritt fehlschlagen, in der Regel in der Gradle-Aufgabe „:launcher:mergeExtDexDebug“. Dort wird dann angezeigt, dass die Transformation einer der Android-Bibliotheken fehlgeschlagen ist. Dies liegt an einem Fehler im Standard-Dex-Tool im Android SDK, das von den meisten Unity-Editoren verwendet wird. Das Problem kann auf verschiedene Arten behoben werden:
- Legen Sie den Wert
minSdkVersionauf 24 fest. - Aktivieren Sie die Android-Minifizierung unter Player Settings > Android > Publishing Settings > Minify.
- Geben Sie eine andere Version des dex-Tools an, indem Sie Folgendes in die Datei
settingsTemplate.gradleeinfügen:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Probleme beim Erstellen für iOS mit CocoaPods
Beim Erstellen für iOS kann die Cocoapod-Installation mit einem Fehler bezüglich des Sprach-Locales oder der UTF-8-Codierung fehlschlagen. Derzeit gibt es mehrere Möglichkeiten, das Problem zu umgehen.
Führen Sie
pod installdirekt im Terminal aus und öffnen Sie die resultierende xcworkspace-Datei.Führen Sie ein Downgrade der Cocoapods-Version auf 1.10.2 durch. Das Problem tritt nur in Version 1.11 und höher auf.
Fügen Sie in Ihrem
~/.bash_profileoder einem ähnlichen Dienstexport LANG=en_US.UTF-8hinzu.
Version der Firebase Unity SDKs aktualisieren
Wie Sie die Versionen von Firebase Unity SDKs aktualisieren, hängt davon ab, wie sie ursprünglich importiert wurden. Hier sind die beiden alternativen Importmethoden:
.unitypackage-Dateien im VerzeichnisAssets/Ihres Projekts importieren- Importieren über den Unity Package Manager (UPM)
- Dies ist die empfohlene Methode zum Verwalten von Paketen in Unity 2018.4 und höher.
- Mit dieser Methode können Sie zukünftige Versionsupdates vereinfachen und das
Assets/-Verzeichnis sauberer halten.
In Ihrem Unity-Projekt sollten Sie nur eine Importmethode verwenden, um alle Ihre Firebase-Pakete zu verwalten. Mit der folgenden Anleitung können Sie nicht nur die Version einzelner Pakete aktualisieren, sondern bei Bedarf auch die Paketverwaltung zu UPM migrieren (die empfohlene Importmethode).