Пришло время серьёзных постов на серьёзные темы. В этот раз будет заезженная тема с включением Multidex в Unity при сборке Android проекта.

В интернете есть статьи, где описывается, что нужно экспортировать проект в Android Studio, и производить какие-то изменения там, но, на самом деле, всё проще. По крайней мере, в последних версиях Unity.

Для этого нужно сделать следующее:

  • Найти mainTempate.gradle, поставляемый с Unity. Находится по пути {папка с юнити}/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates и поместить его в Assets/Plugins/Android.
местонахождение mainTemplate.gradle
  • Если у Вас отсутствует в AndroidManifest.xml в Assets/Plugins/Android, то скопировать его из {папка с юнити}/Editor/Data/PlaybackEngines/AndroidPlayer/Apk.
  • Открыть скопированный mainTemplate.gradle, и добавить параметр multiDexEnabled true в блок defaultConfig.
Добавленный параметр multiDexEnabled в mainTemplate.gradle
  • Открыть скопированный (или ранее созданный) AndroidManifest.xml и добавить свойство android:name="android.support.multidex.MultiDexApplication" внутрь тэга <application>.
Добавленное свойство для поддержки multiDex в манифест
  • Если раньше не было манифеста, и он был скопирован из соответствующей папки на 4 шаге, то поменять идентификатор приложения package с com.unity3d.player на соответствующий идентификатор проекта.
  • Если Unity старой версии, то в Build Settings выбрать в качестве сборочной системы Gradle (в новых версиях всегда Gradle).
Окно Build Settings с выбором Gradle в качестве сборочной системы
  • Открыть Player Settings (можно открыть из окна Build Settings) и, в настройках Android плеера, перейти в категорию Publishing Settings.
  • Поставить галочку на Custom Gradle Template и удостовериться, что отобразившийся путь указывает на скопированный mainTemplate.gradle.
Окно Project Settings и галочка на Custom Gradle Template

На этом всё. Можно собирать проект и радоваться тому, что теперь multiDex работает.