Fehlerbehebung & Häufig gestellte Fragen zu Unity und Firebase

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 Template unter Player Settings aktiviert ist, ändern Sie mainTemplate.gradle.
  • Wenn Sie Android Studio zum Erstellen des exportierten Projekts verwenden, müssen Sie die Datei build.gradle auf 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 minSdkVersion auf 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.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 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 install direkt 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_profile oder einem ähnlichen Dienst export LANG=en_US.UTF-8 hinzu.

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 Verzeichnis Assets/ 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).