Na tej stronie znajdziesz porady i rozwiązania problemów z Unity, które mogą wystąpić podczas korzystania z Firebase.
Masz inne problemy lub nie widzisz swojego problemu w poniższej liście? Aby dowiedzieć się więcej o Firebase lub poszczególnych usługach, zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase.
Problem z single dex podczas kompilowania aplikacji na Androida
Podczas kompilowania aplikacji na Androida może wystąpić błąd kompilacji związany z tym, że masz jeden plik 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 wykonywalne Dalvik (.dex
) służą do przechowywania zestawu definicji klas i powiązanych z nimi danych pomocniczych w przypadku aplikacji na Androida (.apk
). Pojedynczy plik dex może zawierać odwołania do 65 536 metod. Kompilacja zakończy się niepowodzeniem, jeśli łączna liczba metod ze wszystkich bibliotek Androida w projekcie przekroczy ten limit.
W wersji 2017.2 Unity wprowadziło minifikację, która wykorzystuje narzędzie Proguard (lub inne narzędzia w niektórych wersjach Unity) do usuwania nieużywanego kodu. Może to zmniejszyć łączną liczbę odwołujących się do siebie metod w pojedynczym pliku dex. Opcja znajduje się w sekcji Ustawienia odtwarzacza > Android > Ustawienia publikacji > Kompresowanie. Opcje mogą się różnić w zależności od wersji Unity, dlatego zapoznaj się z oficjalną dokumentacją Unity.
Jeśli liczba odwołań do metod nadal przekracza limit, możesz włączyć multidex
. Można to zrobić na kilka sposobów:
- Jeśli opcja
Custom Gradle Template
w sekcjiPlayer Settings
jest włączona, zmieńmainTemplate.gradle
. - Jeśli do wyeksportowania projektu używasz Android Studio, zmodyfikuj plik
build.gradle
na poziomie modułu.
Więcej informacji znajdziesz w przewodniku użytkownika Multi-X.
Problemy podczas kompilowania aplikacji na Androida z wartością minSdkVersion 23
Podczas kompilowania na Androida, jeśli ustawisz wersję minSdkVersion
23, może wystąpić błąd w kroku dekodowania, zwykle w zadanie Gradle ':launcher:mergeExtDexDebug', gdzie pojawi się komunikat „Nie udało się przekształcić” jednej z bibliotek Androida. Jest to spowodowane błędem w domyślnym narzędziu dex w pakiecie SDK Androida, którego używa większość edytorów Unity. Można to naprawić na kilka sposobów:
- Ustaw wartość
minSdkVersion
na 24. - Włącz kompresję na Androida w sekcji Ustawienia odtwarzacza > Android > Ustawienia publikacji > Kompresowanie.
- Określ inną wersję narzędzia dex, dodając do pliku
settingsTemplate.gradle
ten wiersz:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problemy z kompilacją na iOS za pomocą Cocoapods
Podczas kompilowania aplikacji na iOS instalacja Cocoapod może zakończyć się błędem dotyczącym ustawień języka lub kodowania UTF-8. Obecnie istnieje kilka różnych sposobów na obejście tego problemu.
W terminalu uruchom bezpośrednio
pod install
i otwórz utworzony plik xcworkspace.Wróć do wersji Cocoapods 1.10.2. Problem występuje tylko w wersji 1.11 i nowszych.
W
~/.bash_profile
lub podobnym programie dodajexport LANG=en_US.UTF-8
Jak zaktualizować wersję pakietów SDK Firebase dla Unity
Proces aktualizacji wersji pakietów Firebase Unity SDK zależy od tego, jak zostały one zaimportowane. Oto 2 alternatywne metody importowania:
- Importowanie plików
.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.
- Dzięki temu łatwiej będzie Ci aktualizować wersje, a katalog
Assets/
będzie czystszy.
W projekcie Unity do zarządzania wszystkimi pakietami Firebase należy używać tylko jednej metody importowania. Z tych instrukcji możesz skorzystać nie tylko do aktualizowania wersji poszczególnych pakietów, ale też, w razie potrzeby, do przeniesienia zarządzania pakietami do UPM (zalecana metoda importowania).