Моя команда и я унаследовали большой проект Android от другой команды. Сообщается, что все приложение со всеми включенными библиотеками имеет около 35000 методов. Теперь у нас есть задача реализовать новый сервис в приложении, где нам нужно использовать протокольные буферы.
Проблема в том, что сгенерированный файл .jar со всеми необходимыми файлами .proto создает еще пару 35000 методов, то есть 70000 методов. И если вы не в курсе, компилятор Android имеет ограничение в 65536 методов на файл .dex. Мы явно превысили этот предел, и при попытке скомпилировать приложение мы получаем следующую ошибку:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Да, архитектура приложения, вероятно, должна быть реструктурирована, но это потребует времени. А пока мы пытаемся найти решение, чтобы временно обойти эту проблему.
Какие-либо предложения?