Android. Проблема с «Application does not support this device»

В ходе работы над проектами под Android на Delphi часто приходится сталкиваться с тем, что приложение, вполне работоспособное на одном устройстве, при его установке на другое часто отказывается даже запускаться. При этом появляется чёрный экран с сообщением «Application does not support this device».

Для таких случаев Embarcadero рекомендует способ, описанный в Release Notes for XE6 (Workaround for Android 4.0/Kindle Fire Message: «Application does not support this device»). Однако, даже он далеко не всегда помогает решить данную проблему.

Причина всего этого, как оказалось, предельно проста. Компилятор Delphi просто на просто поддерживает для Android исключительно процессоры ARMv7.

К слову, какой тип процессора используется в том или ином устройстве (включая эмулируемые) можно узнать с помощью специальных программ. Например, CPU-Z, которая доступна в Google Play.

Даже несмотря на то, что в обсуждении по ссылке выше фигурирует версия XE6, а, на момент написания этой статьи, уже давно выпущена версия XE7, к сожалению, ничего не изменилось.

Таким образом, перед разработчиками под Android на Delphi возникает следующая дилемма.

  • Оставить Delphi в качестве единственной среды разработки под Android и разрабатывать приложения только для платформы ARMv7, ожидая, когда Embarcadero расширит перечень поддерживаемых типов процессоров;
  • Осваивать более универсальные средства разработки. Например, «родной» для Android, Java.

Каждый разработчик будет по-своему решать эту дилемму. Но, в тоже время, ясно одно.

Говорить о полной поддержке Android, а, следовательно, и обеспечении единой кодовой базы даже для основных аппаратных платформ пока не приходится.

P.S. Проблема описанная в данной статье полностью актуальна также и для C++ Builder.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *