Fehlerbehebung & Häufig gestellte Fragen zu Unity und Firebase

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 allgemeine oder produktspezifische FAQs finden Sie in den Firebase-FAQs.

Ein 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) werden verwendet,um eine Reihe von Klassendefinitionen und die zugehörigen Zusatzdaten für Android-Apps (.apk) zu speichern. Eine einzelne DEX-Datei ist auf die Referenzierung von 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 2017.2 die Minimierung eingeführt, bei der Proguard (oder andere Tools in einigen Versionen von Unity) verwendet wird, um nicht verwendeten Code zu entfernen. Dadurch kann die Gesamtzahl der referenzierten Methoden in einer einzelnen DEX-Datei reduziert werden. Die Option finden Sie unter Player Settings > Android > Publishing Settings > Minify (Player-Einstellungen > Android > Veröffentlichungseinstellungen > Minimieren). Die Optionen können sich je nach Unity-Version unterscheiden. Weitere Informationen finden Sie in der offiziellen Unity-Dokumentation.

Wenn die Anzahl der referenzierten Methoden das Limit immer noch überschreitet, können Sie auch multidex aktivieren. In Unity gibt es mehrere Möglichkeiten, dies zu erreichen:

  • Wenn Custom Gradle Template unter Player Settings aktiviert ist, ändern Sie mainTemplate.gradle.
  • Wenn Sie Android Studio zum Erstellen des exportierten Projekts verwenden, ändern Sie die Datei build.gradle auf Modulebene.

Weitere Informationen finden Sie im Multidex-Nutzerhandbuch.

Probleme beim Erstellen für Android mit minSdkVersion 23

Wenn Sie für Android entwickeln und minSdkVersion 23 als Ziel verwenden, kann es beim Dexing-Schritt zu einem Fehler kommen, normalerweise im Gradle-Task „:launcher:mergeExtDexDebug“. Dort wird dann angezeigt, dass eine der Android-Bibliotheken nicht transformiert werden konnte. Dies wird durch einen Fehler im Standard-Dex-Tool im Android SDK verursacht, das die meisten Unity-Editoren verwenden. Es gibt verschiedene Möglichkeiten, diesen Fehler zu beheben:

  • Legen Sie den Wert minSdkVersion auf 24 fest.
  • Aktiviere die Android-Reduzierung unter Player Settings > Android > Publishing Settings > Minify.
  • Wenn Sie eine andere Version des dex-Tools angeben möchten, fügen Sie der Datei settingsTemplate.gradle Folgendes hinzu:
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 der Sprache 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 Ihrer ~/.bash_profile oder einer entsprechenden Datei export LANG=en_US.UTF-8 hinzu.

Version der 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 im Verzeichnis Assets/ 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.
    • Verwenden Sie diese Methode, um zukünftige Versionsupdates zu vereinfachen und Ihr Assets/-Verzeichnis übersichtlicher zu gestalten.

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 (der empfohlenen Importmethode) migrieren.