Как подружить 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
Шаг 4.
Там же, но чуть ниже жмём кнопочку Resolve.
Шаг 5.
Заходим в другой проект, и тоже жмём кнопочку Resolve.
Шаг 6.
Открываем через проводник проекты, и совмещаем папки Plugins. Совмещать будем в основном проекте, в котором отключали enable auto-resolution.
Шаг 7.
Заходим в папку с установленным AndroidSDK\extras\google\m2repository\com\google\android\gms и ищем все плагины, которые ниже версии основных плагинов. Т.е. если в одном из плагинов совпадающие плагины выше, то выравниваем все плагины под эту версию. Должна получиться такая картина:
На данном этапе уже должно всё работать, однако, у меня вылезала другая грабля: проект вновь не собирался из-за огромного количества ссылок плагинов друг на друга, из-за чего они не помещались в dex-файл. Насколько я понял, сам Unity ограничен числом в 65536 ссылок, у меня получилось около 66 тысяч. Ну я недолго думая взял и снёс яндекс.метрику, прописав перед инициализацией appodeal строчку "Appodeal.disableNetwork("yandex");". Всё собралось.
Однако, если вы не хотите ничего вырезать, тогда го сюда, человечек всё в картинках расписал https://stackoverflow.com/questions/42582850/too-many-field-...
В общем, надеюсь, было полезно и доступно. Если возникли вопросы - пишите в комментариях, с радостью отвечу.
Лига Разработчиков Видеоигр
6.6K постов22.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"