
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.158.66] |
![]() |
|
Сообщ.
#1
,
|
|
|
Здравствуйте.
При запуске приложения на родном эмуляторе Android Studio, в LogCat вываливается серия сообщений следующего вида: 10-14 07:23:48.075 3602-3607/xxx.testcallerandroid I/art: Method exceeds compiler instruction limit: 24336 in void com.xxx.PackageName.ClassName.MethodName() В качестве MethodName в разных сообщениях фигурируют имена двух методов. Всего сообщений около 10. При этом приложение успешно отрабатывает. Исходя из текста сообщения, причина очевидно в кроется в больших размерах байткода упоминаемых методов. Судя по тому, что компилятор при сборке проекта не ругается, могу предположить, что превышено ограничение именно виртуальной Java машины данного эмулятора. В связи с изложенным выше возникло несколько вопросов. Вопрос первый: правильно ли я понимаю(трактую) ситуацию (см. выше)? Вопрос второй: почему при этом приложение нормально отрабатывает, а не вылетает, например? Вопрос третий: как избежать появления данных сообщений? Подозреваю, что простейшим методом решения данной проблемы, скорее всего является дробление длинных методов на более короткие. Или нет? Или есть другие методы? Заранее благодарен. |