Пару слов о поддержке Multidex для Android в AIR, которую Adobe ввела в 25-й версии. С помощью мультидекса можно упаковывать приложения, которые превышают лимит в 64K методов. Это может произойти, если вы пишете своё или используете стороннее ANE, содержащее большое количество библиотек и, соответственно, большое количество методов. В таком случае при сборке вы получите ошибку:
Too many method references max is 65536
AIR 25 наконец-то позволяет включить multidex, чтобы преодолеть эту проблему.
При разработке собственного ANE выставьте флаг поддержки multidex в gradle скрипте проекта
1 2 3 |
defaultConfig { multiDexEnabled true } |
Далее, при упаковке 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
):
1 2 |
<application android:enabled="true" android:name="android.support.multidex.MultiDexApplication"> |
Обратите внимание, что если ANE содержит pre-dex библиотеки, то при попытке упаковки приложения будет выдаваться ошибка.