Проблема 64К методов – это ограничение на количество методов в одном
.dex-файле. Максимальное количество методов в .dex-файле равно 65536.
На ранних версиях Андроида приложение могло иметь только один .dex-файл. Проблема 64К ограничивала количество методов в приложении.
Почему ограничение в 65536 методов, а проблема называется 64K?«K» значит Kilo, что в computer science значит
1024*x.
1024*64 = 65536.
Почему возникла эта проблема?Один класс в Java может иметь максимум 64К методов.
В Андроиде .dex-файл сделан по образу .class и поэтому наследует это ограничение.
Причина ограничения в том, что под индексы ссылок на методы в java- и dalvik-байткоде выделено 16 бит. Т.е. максимальное число
2^16 = 65536.
Как решать проблему?На ранних версиях Андроида единственным решением было уменьшение количества методов. Для этого использовался Proguard.
Сейчас проблема решается
включением Multidex. В этом случае приложение может иметь более одного .dex-файла.