Поддержка Multidex для Android в Adobe AIR

Пару слов о поддержке Multidex для Android в AIR, которую Adobe ввела в 25-й версии. С помощью мультидекса можно упаковывать приложения, которые превышают лимит в 64K методов. Это может произойти, если вы пишете своё или используете стороннее ANE, содержащее большое количество библиотек и, соответственно, большое количество методов. В таком случае при сборке вы получите ошибку:

Too many method references max is 65536

AIR 25 наконец-то позволяет включить multidex, чтобы преодолеть эту проблему.

При разработке собственного ANE выставьте флаг поддержки multidex в gradle скрипте проекта

Далее, при упаковке ANE исключите библиотеку com.android.support:multidex. Её можно прописать в зависимостях проекта для компиляции Android библиотеки, но обязательно надо игнорировать при упаковке самого расширения, потому что иначе, при попытке сборки приложения, будет выводиться ошибка:

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/multidex/BuildConfig;

Видимо потому, что библиотека добавляется AIR’ом и повторное включение её в ANE создаёт конфликт.

Для приложения не забудьте прописать поддержку multidex в секции Android манифеста файла-дескриптора (android > manifestAdditions > manifest):

Обратите внимание, что если ANE содержит pre-dex библиотеки, то при попытке упаковки приложения будет выдаваться ошибка.