Я разрабатываю приложение для Android, которое требует нескольких библиотек (для Facebook, Google Maps v2 и Quickblox среди других), что приводит к переполнению суммы метода, которая превышает 64-килобайтный лимит:
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
Как я не могу обойтись без какой-либо из этих библиотек, я искал решение для ошибки ограничения метода. Я нашел популярную запись в блоге от разработчиков Android, где рекомендуется разделение исходного кода. (Запись в блоге, о которой я говорю, можно найти здесь: http://android-developers.blogspot.com.es/2011/07/custom-class-loading-in-dalvik.html). Я пробовал это решение без успеха.
Теперь проблема заключается в том, что самый большой объем кода не в самом моем приложении, а в необходимых библиотеках, поэтому мне приходится распространять эти библиотеки среди разных файлов dex, которые я должен загрузить в своем приложении. Мои знания о Ant очень ограничены, и то, что я хотел бы знать, - это то, что я должен написать в файле build.xml, чтобы сделать dex копией каждой библиотеки, где я хочу:
<!-- Primary dex to include my source code and some libraries. -->
<copy todir="${out.classes.absolute.dir}.1" >
<fileset dir="${out.classes.absolute.dir}" >
...
</fileset>
</copy>
<!-- Secondary dex to include some other libraries. -->
<copy todir="${out.classes.absolute.dir}.2" >
<fileset dir="${out.classes.absolute.dir}" >
...
</fileset>
</copy>
Любая помощь будет по-настоящему оценена. Спасибо заранее, любезно!