Как подружить Google play services и appodeal в Unity или Unable to convert classes into dex format.

Привет, пикабу.


Буквально вскользь упомянув appodeal в своём предыдущем посте, посыпались заявки с просьбами разжевать конфликт между google play services(та штука, позволяющая встраивать гугловские лидерборды, ачивки и пр.) и appodeal(рекламный медиатор). Суть заключается в том, что у каждого плагина есть встроенный play services resolver, т.е. та штука, которая подгружает необходимые .aar плагины, а поскольку у нас сервисы разнятся, если банально собрать все файлы из двух архивов вместе, один из резолверов будет некорректно качать плагины. Как это исправить, читаем пунктики:

Шаг 1.

Качаем архив с appodeal и google play services.

Шаг 2.

Создаём два чистых проекта. Для удобства обзовём каждый идентично архиву, который будем запихивать, т.е. Appodeal и GPGs

Шаг 3.

В одном из проектов, который мы будем брать за основу(я выбрал GPGs) отключаем enable auto-resolution в Assets/Play Services Resolver/Android Resolver/Settings

Как подружить Google play services и appodeal в Unity или Unable to convert classes into dex format. Gamedev, Appodeal, Unity, Google Play services, Длиннопост

Шаг 4.

Там же, но чуть ниже жмём кнопочку Resolve.

Шаг 5.

Заходим в другой проект, и тоже жмём кнопочку Resolve.

Шаг 6.

Открываем через проводник проекты, и совмещаем папки Plugins. Совмещать будем в основном проекте, в котором отключали enable auto-resolution.

Шаг 7.

Заходим в папку с установленным AndroidSDK\extras\google\m2repository\com\google\android\gms и ищем все плагины, которые ниже версии основных плагинов. Т.е. если в одном из плагинов совпадающие плагины выше, то выравниваем все плагины под эту версию. Должна получиться такая картина:

Как подружить Google play services и appodeal в Unity или Unable to convert classes into dex format. Gamedev, Appodeal, Unity, Google Play services, Длиннопост

На данном этапе уже должно всё работать, однако, у меня вылезала другая грабля: проект вновь не собирался из-за огромного количества ссылок плагинов друг на друга, из-за чего они не помещались в dex-файл. Насколько я понял, сам Unity ограничен числом в 65536 ссылок, у меня получилось около 66 тысяч. Ну я недолго думая взял и снёс яндекс.метрику, прописав перед инициализацией appodeal строчку "Appodeal.disableNetwork("yandex");". Всё собралось.


Однако, если вы не хотите ничего вырезать, тогда го сюда, человечек всё в картинках расписал https://stackoverflow.com/questions/42582850/too-many-field-...


В общем, надеюсь, было полезно и доступно. Если возникли вопросы - пишите в комментариях, с радостью отвечу.

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"