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