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 Informationen finden Sie in den häufig gestellten Fragen zu Firebase.

Problem mit einer einzelnen DEX-Datei 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 etwa so aus, wenn Ihr Projekt für die Verwendung des Gradle-Buildsystems 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 kann maximal 65.536 Methoden referenzieren. 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 Minifizierung 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. Die Optionen können sich in verschiedenen Versionen von Unity 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. Es gibt mehrere Möglichkeiten, dies in Unity zu tun:

  • Wenn unter Player Settings die Option Custom Gradle Template aktiviert ist, ändern Sie mainTemplate.gradle.
  • Wenn Sie Android Studio verwenden, um das exportierte Projekt zu erstellen, ändern Sie die build.gradle-Datei auf Modulebene.

Weitere Informationen finden Sie in dem Nutzerhandbuch zu multidex.

Probleme beim Erstellen für Android mit minSdkVersion 23

Wenn Sie für Android erstellen und minSdkVersion 23 verwenden, kann der Vorgang im Dexing-Schritt fehlschlagen, normalerweise in der Gradle-Aufgabe ':launcher:mergeExtDexDebug'. Dort wird angezeigt, dass die Transformation einer der Android-Bibliotheken fehlgeschlagen ist. Das liegt an einem Fehler im Standard-Dex-Tool im Android SDK, das die meisten Unity-Editoren verwenden. Es gibt mehrere Möglichkeiten, das Problem zu beheben:

  • Legen Sie 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 zur Datei settingsTemplate.gradle hinzufü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 zum Sprachgebietsschema oder zur UTF-8-Codierung fehlschlagen. Derzeit gibt es mehrere Möglichkeiten, das Problem zu umgehen.

  • Führen Sie im Terminal direkt pod install 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 ~/.bash_profile oder einer ähnlichen Datei export LANG=en_US.UTF-8 hinzu.

Versionen von Firebase Unity SDKs aktualisieren

Der Vorgang zum Aktualisieren der Versionen von Firebase Unity SDKs hängt davon ab, wie sie ursprünglich importiert wurden. Es gibt zwei alternative Importmethoden:

  • Importieren von .unitypackage-Dateien in das Verzeichnis Assets/ Ihres Projekts
  • 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 können Sie zukünftige Versionsupdates vereinfachen und das Verzeichnis Assets/ übersichtlicher 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 migrieren (die empfohlene Importmethode).