На этой странице приведены советы и инструкции по устранению неполадок, связанных с Unity, которые могут возникнуть при использовании Firebase.
Если у вас возникли другие проблемы или вы не нашли нужную информацию ниже, Ознакомьтесь с основным разделом часто задаваемых вопросов о Firebase, чтобы найти ответы на вопросы, связанные с Firebase в целом или с отдельными продуктами.
Проблема с одним файлом DEX при сборке приложения для Android
При создании приложения для Android может возникнуть ошибка, связанная с наличием одного файла DEX. Если ваш проект настроен на использование системы сборки Gradle, сообщение об ошибке будет выглядеть примерно так:
Cannot fit requested classes in a single dex file.
Файлы Dalvik Executable (.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, то на этапе dexing может возникнуть ошибка. Обычно она появляется в задаче 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 и более поздних.
Добавьте
export LANG=en_US.UTF-8в~/.bash_profileили эквивалентный файл.
Как обновить версию Firebase Unity SDK
Процесс обновления версий Firebase Unity SDK зависит от того, как они были импортированы изначально. Ниже описаны два альтернативных способа импорта.
- Импорт файлов
.unitypackageв каталогAssets/проекта - Импорт с помощью Unity Package Manager (UPM)
- Это рекомендуемый способ управления пакетами в Unity 2018.4 и более поздних версиях.
- Этот способ упрощает обновление версий и позволяет поддерживать порядок в каталоге
Assets/.
В проекте Unity для управления всеми пакетами Firebase следует использовать только один метод импорта. Инструкции ниже можно использовать не только для обновления версий отдельных пакетов, но и для перехода на UPM (рекомендуемый метод импорта).