Na tej stronie znajdziesz wskazówki i rozwiązania problemów związanych z Unity, które mogą wystąpić podczas korzystania z Firebase.
Masz inne problemy lub nie widzisz swojego problemu na liście poniżej? Więcej najczęstszych pytań dotyczących Firebase lub konkretnych usług znajdziesz w głównym artykule z najczęstszymi pytaniami na temat Firebase.
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 posiadaniem pojedynczego pliku dex. Jeśli Twój projekt jest skonfigurowany do korzystania z systemu kompilacji Gradle, komunikat o błędzie będzie wyglądał podobnie do tego:
Cannot fit requested classes in a single dex file.
Pliki Dalvik Executable (.dex) służą do przechowywania zestawu definicji klas i powiązanych z nimi danych dodatkowych 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 projekcie przekroczy ten limit.
W wersji 2017.2 Unity wprowadzono minifikację, która używa Proguarda (lub innych narzędzi w niektórych wersjach Unity) do usuwania nieużywanego kodu. Może to zmniejszyć łączną liczbę metod, do których odwołuje się pojedynczy plik dex. Tę opcję znajdziesz w sekcji Player Settings > Android > Publishing Settings > Minify (Ustawienia odtwarzacza > Android > Ustawienia publikowania > Minifikacja). Opcje mogą się różnić w zależności od wersji Unity, dlatego zapoznaj się z oficjalną dokumentacją Unity.
Jeśli liczba metod, do których się odwołujesz, nadal przekracza limit, możesz włączyć multidex. W Unity można to zrobić na kilka sposobów:
- Jeśli opcja
Custom Gradle Templatew sekcjiPlayer Settingsjest włączona, zmodyfikujmainTemplate.gradle. - Jeśli do tworzenia wyeksportowanego projektu używasz Android Studio, zmodyfikuj plik
build.gradlena poziomie modułu.
Więcej informacji znajdziesz w przewodniku użytkownika multidex.
Problemy podczas kompilowania na Androida z minSdkVersion 23
Jeśli podczas tworzenia aplikacji na Androida wybierzesz minSdkVersion 23, może wystąpić błąd na etapie dexowania, zwykle w zadaniu Gradle „:launcher:mergeExtDexDebug”, gdzie pojawi się komunikat „Failed to transform” (Nie udało się przekształcić) 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 go naprawić na kilka sposobów:
- Ustaw wartość
minSdkVersionna 24. - Włącz minifikację na Androidzie w sekcji Ustawienia odtwarzacza > Android > Ustawienia publikowania > Minifikacja.
- Określ inną wersję narzędzia dex, dodając do pliku
settingsTemplate.gradleten kod:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problemy podczas kompilowania na iOS za pomocą Cocoapods
Podczas kompilowania na iOS instalacja Cocoapod może się nie powieść z powodu błędu dotyczącego języka lub kodowania UTF-8. Obecnie istnieje kilka różnych sposobów na obejście tego problemu.
W terminalu uruchom bezpośrednio
pod installi otwórz wynikowy plik xcworkspace.Zmień wersję Cocoapods na starszą – 1.10.2. Problem występuje tylko w wersji 1.11 i nowszych.
W pliku
~/.bash_profilelub jego odpowiedniku dodajexport LANG=en_US.UTF-8
Jak zaktualizować wersję pakietów Firebase Unity SDK
Proces aktualizowania wersji pakietów Firebase Unity SDK zależy od sposobu ich początkowego zaimportowania. Oto 2 alternatywne metody importowania:
- Importuję pliki (
.unitypackage) w kataloguAssets/projektu - Importowanie za pomocą menedżera pakietów Unity (UPM)
- Jest to zalecany sposób zarządzania pakietami w Unity w wersji 2018.4 lub nowszej.
- Użyj tej metody, aby ułatwić sobie aktualizowanie wersji w przyszłości i zachować porządek w katalogu
Assets/.
W projekcie Unity należy używać tylko jednej metody importowania do zarządzania wszystkimi pakietami Firebase. Instrukcje poniżej można wykorzystać nie tylko do aktualizacji wersji poszczególnych pakietów, ale też, w razie potrzeby, do przeniesienia zarządzania pakietami do UPM (zalecana metoda importowania).