На этой странице приведены советы по устранению неполадок, связанных с Unity, которые могут возникнуть при использовании Firebase.
У вас возникли другие проблемы или вы не нашли свою в списке ниже? Ознакомьтесь с основными часто задаваемыми вопросами о Firebase, а также с часто задаваемыми вопросами о конкретных продуктах.
Проблема с файлом DEX при создании приложения для Android
При создании приложения для Android может произойти сбой сборки, связанный с наличием одного файла DEX. Если в вашем проекте используется система сборки Gradle, сообщение об ошибке будет выглядеть примерно так:
Cannot fit requested classes in a single dex file.
Исполняемые файлы Dalvik (.dex) используются для хранения набора определений классов и связанных с ними дополнительных данных для приложений Android (.apk). Один DEX-файл может содержать ссылки не более чем на 65 536 методов. Если общее количество методов во всех библиотеках Android в вашем проекте превышает этот лимит, сборка завершится неудачно.
В версии 2017.2 Unity добавила функцию минимизации, которая использует Proguard (или другие инструменты в некоторых версиях Unity) для удаления неиспользуемого кода. Это позволяет уменьшить общее количество методов, на которые ссылается один DEX-файл. Этот параметр можно найти в разделе Player Settings > Android > Publishing Settings > Minify. В разных версиях Unity могут быть разные варианты, поэтому обратитесь к официальной документации Unity.
Если количество методов по-прежнему превышает лимит, можно включить multidex. В Unity это можно сделать несколькими способами:
- Если параметр
Custom Gradle Templateв разделеPlayer Settingsвключен, измените значениеmainTemplate.gradle. - Если вы используете Android Studio для сборки экспортированного проекта, измените файл
build.gradleна уровне модуля.
Подробную информацию можно найти в руководстве по использованию multidex.
Проблемы при создании приложений для Android с minSdkVersion 23
При создании приложения для Android, если вы используете minSdkVersion 23, на этапе преобразования в DEX-файл может произойти сбой, обычно в задаче Gradle ':launcher:mergeExtDexDebug'. В этом случае будет указано, что не удалось преобразовать одну из библиотек Android. Это происходит из-за ошибки в инструменте dex по умолчанию в Android SDK, который используется в большинстве редакторов Unity. Проблему можно устранить несколькими способами:
- Установите для параметра
minSdkVersionзначение 24. - Включите минификацию Android в разделе Player Settings > Android > Publishing Settings > Minify.
- Чтобы указать другую версию инструмента dex, добавьте в файл
settingsTemplate.gradleследующий код:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Проблемы при создании приложения для iOS с помощью Cocoapods
При сборке для iOS установка Cocoapod может завершиться неудачно из-за ошибки, связанной с языковыми настройками или кодировкой UTF-8. В настоящее время существует несколько способов обойти эту проблему.
В окне терминала запустите
pod installи откройте полученный файл xcworkspace.Перейдите на версию Cocoapods 1.10.2. Проблема существует только в версии 1.11 и более новых.
В
~/.bash_profileили аналогичном приложении добавьтеexport LANG=en_US.UTF-8.
Как обновить версию Firebase Unity SDK
Процесс обновления версий Firebase Unity SDK зависит от того, как они были импортированы изначально. Вот два альтернативных способа импорта:
- Импорт файлов
.unitypackageв каталогAssets/проекта - Импорт с помощью менеджера пакетов Unity (UPM)
- Это рекомендуемый способ управления пакетами в Unity 2018.4 и более поздних версиях.
- Этот способ упрощает обновление будущих версий и очищает каталог
Assets/.
В проекте Unity следует использовать только один способ импорта для управления всеми пакетами Firebase. Приведенные ниже инструкции можно использовать не только для обновления версии отдельных пакетов, но и для переноса управления пакетами в UPM (рекомендуемый способ импорта).