Rozwiązywanie problemów Najczęstsze pytania dotyczące Unity i Firebase

Na tej stronie znajdziesz wskazówki i informacje o rozwiązywaniu problemów z Firebase, które mogą wystąpić w Unity.

Masz inne problemy lub nie widzisz swojego problemu wymienionego poniżej? Zapoznaj się z głównymi pytaniami i odpowiedziami dotyczącymi Firebase lub konkretnych usług.

Problem z pojedynczym plikiem dex podczas tworzenia aplikacji na Androida

Podczas tworzenia aplikacji na Androida może wystąpić błąd kompilacji związany z pojedynczym plikiem dex. Jeśli Twój projekt jest skonfigurowany do korzystania z systemu kompilacji Gradle, komunikat o błędzie będzie podobny do tego:

Cannot fit requested classes in a single dex file.

Pliki wykonywalne Dalvik (.dex) służą do przechowywania zestawu definicji klas i powiązanych z nimi danych dodatkowych dla aplikacji na Androida (.apk). Pojedynczy plik dex może odwoływać się do maksymalnie 65 536 metod. Kompilacja nie powiedzie się, jeśli łączna liczba metod ze wszystkich bibliotek Androida w Twoim projekcie przekroczy ten limit.

W Unity 2017.2 wprowadzono minifikację , która używa Proguarda (lub innych narzędzi w niektórych wersjach Unity) do usuwania nieużywanego kodu, co może zmniejszyć łączną liczbę metod, do których odwołuje się pojedynczy plik dex. Tę opcję znajdziesz w sekcji Ustawienia odtwarzacza > Android > Ustawienia publikowania > Minifikacja. Opcje mogą się różnić w zależności od wersji Unity, więc zapoznaj się z oficjalną dokumentacją Unity.

Jeśli liczba metod, do których odwołuje się plik, nadal przekracza limit, możesz włączyć multidex. W Unity można to zrobić na kilka sposobów:

  • Jeśli w sekcji Player Settings jest włączona opcja Custom Gradle Template, zmodyfikuj plik mainTemplate.gradle.
  • Jeśli do tworzenia wyeksportowanego projektu używasz Android Studio, zmodyfikuj plik build.gradle na poziomie modułu.

Więcej informacji znajdziesz w przewodniku użytkownika multidex.

Problemy podczas tworzenia aplikacji na Androida z minSdkVersion 23

Podczas tworzenia aplikacji na Androida, jeśli kierujesz reklamy na minSdkVersion 23, może wystąpić błąd na etapie dexingu, zwykle w zadaniu Gradle „:launcher:mergeExtDexDebug”, który będzie informować o nieudanej transformacji jednej z bibliotek Androida. Jest to spowodowane błędem w domyślnym narzędziu dex w pakiecie Android SDK, którego używa większość edytorów Unity. Można to naprawić na kilka sposobów:

  • Ustaw minSdkVersion na 24.
  • Włącz minifikację Androida w sekcji Ustawienia odtwarzacza > Android > Ustawienia publikowania > Minifikacja.
  • Określ inną wersję narzędzia dex, dodając ten kod do pliku settingsTemplate.gradle:
buildscript {
  repositories {
    mavenLocal()
    maven { url 'https://maven.google.com'  }
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools:r8:8.3.37'
  }
}

Problemy podczas tworzenia aplikacji na iOS za pomocą Cocoapods

Podczas tworzenia aplikacji na iOS instalacja Cocoapod może się nie powieść z powodu błędu dotyczącego ustawień regionalnych języka lub kodowania UTF-8. Obecnie istnieje kilka sposobów obejścia tego problemu.

  • W terminalu uruchom bezpośrednio polecenie pod install i otwórz utworzony plik xcworkspace.

  • Zmień wersję Cocoapods na 1.10.2. Ten problem występuje tylko w wersji 1.11 i nowszych.

  • W pliku ~/.bash_profile lub jego odpowiedniku dodaj export LANG=en_US.UTF-8.

Jak zaktualizować wersję pakietów Firebase Unity SDK

Proces aktualizacji wersji pakietów Firebase Unity SDK zależy od tego, jak zostały one pierwotnie zaimportowane. Oto 2 alternatywne metody importowania:

  • Importowanie plików .unitypackage w katalogu Assets/ projektu.
  • Importowanie za pomocą Menedżera pakietów Unity (UPM)
    • Jest to zalecany sposób zarządzania pakietami w Unity 2018.4 i nowszych wersjach.
    • Użyj tej metody, aby ułatwić sobie przyszłe aktualizacje wersji i uporządkować katalog Assets/.

W projekcie Unity do zarządzania wszystkimi pakietami Firebase należy używać tylko jednej metody importowania. Poniższe instrukcje pozwalają nie tylko zaktualizować wersję poszczególnych pakietów, ale też w razie potrzeby przenieść zarządzanie pakietami do UPM (zalecana metoda importowania).