Auf dieser Seite finden Sie Tipps und Informationen zur Fehlerbehebung bei Unity-spezifischen Problemen, die bei der Verwendung von Firebase auftreten können.
Sie haben andere Probleme oder können das unten beschriebene Problem nicht sehen? Weitere Firebase-spezifische oder allgemeine häufig gestellte Fragen finden Sie in den Firebase-FAQs.
Problem mit Single Dex beim Erstellen einer Android-App
Beim Erstellen einer Android-App kann ein Buildfehler auftreten, der auf eine einzelne DEX-Datei zurückzuführen ist. 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.
In Dalvik-Ausführbaren (.dex
) werden eine Reihe von Klassendefinitionen und die zugehörigen Zusatzdaten für Android-Anwendungen (.apk
) gespeichert. Eine einzelne dex-Datei kann 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.
In Unity 2017.2 wurde die Minimierung eingeführt. Dabei wird mit Proguard (oder anderen Tools in einigen Versionen von Unity) nicht verwendeter Code entfernt, wodurch sich die Gesamtzahl der referenzierten Methoden in einer einzelnen dex-Datei reduzieren lässt. Sie finden die Option unter Player-Einstellungen > Android > Einstellungen für die Veröffentlichung > Minimieren. 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 das Limit weiterhin überschreitet, können Sie multidex
aktivieren. In Unity gibt es dafür mehrere Möglichkeiten:
- Wenn
Custom Gradle Template
unterPlayer Settings
aktiviert ist, ändern SiemainTemplate.gradle
. - Wenn Sie das exportierte Projekt mit Android Studio erstellen, ändern Sie die
build.gradle
-Datei auf Modulebene.
Weitere Informationen finden Sie im Multidex-Nutzerhandbuch.
Probleme beim Erstellen für Android mit minSdkVersion 23
Wenn Sie beim Erstellen für Android minSdkVersion
23 als Ziel auswählen, schlägt der De-Xing-Schritt möglicherweise fehl, in der Regel bei der Gradle-Aufgabe „:launcher:mergeExtDexDebug“. Dort wird angezeigt, dass die Umwandlung einer der Android-Bibliotheken fehlgeschlagen ist. Das Problem wird durch einen Fehler im Standard-Dex-Tool im Android SDK verursacht, das von den meisten Unity-Editoren verwendet wird. Es kann auf verschiedene Arten behoben werden:
- Legen Sie den Wert
minSdkVersion
auf 24 fest. - Aktiviere die Minimierung für Android unter Player-Einstellungen > Android > Einstellungen für die Veröffentlichung > Minimieren.
- Geben Sie eine andere Version des dex-Tools an, indem Sie Folgendes in die Datei
settingsTemplate.gradle
einfügen:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Probleme beim Erstellen von iOS-Apps mit Cocoapods
Wenn Sie für iOS erstellen, schlägt die Cocoapod-Installation möglicherweise mit einem Fehler bezüglich der Sprachlokalisierung oder der UTF-8-Codierung fehl. Es gibt derzeit mehrere Möglichkeiten, das Problem zu umgehen.
Führen Sie
pod install
direkt im Terminal aus und öffnen Sie die resultierende xcworkspace-Datei.Führen Sie ein Downgrade der Cocoapods-Version auf 1.10.2 aus. Das Problem tritt nur in Version 1.11 und höher auf.
Fügen Sie
export LANG=en_US.UTF-8
zu~/.bash_profile
oder einem ähnlichen Wert hinzu.
Version des Firebase Unity SDKs aktualisieren
Wie Sie die Versionen der Firebase Unity SDKs aktualisieren, hängt davon ab, wie sie ursprünglich importiert wurden. Hier sind die beiden alternativen Importmethoden:
.unitypackage
-Dateien in dasAssets/
-Verzeichnis Ihres Projekts importieren- Importieren mit dem Unity Package Manager (UPM)
- Dies ist die empfohlene Methode zum Verwalten von Paketen in Unity 2018.4 und höher.
- Mit dieser Methode lassen sich zukünftige Versionsupdates einfacher durchführen und Ihr
Assets/
-Verzeichnis wird aufgeräumt.
In Ihrem Unity-Projekt sollten Sie nur eine Importmethode verwenden, um alle 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).