Моя команда и я унаследовали большой проект 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
Да, архитектура приложения, вероятно, должна быть реструктурирована, но это займет время. И пока мы пытаемся найти решение для решения этой проблемы временно.
Любые предложения?