• 0
ksvsvk

Не запускается приложение на эмуляторе

Вопросы

Использую RAD Studio 10.1 Berlin Update 2.

Устанавливаю в Android Tools полностью API-25 и API-17, а также Android SDK Tools 25.2.5, SDK Platform Tools 25.0.6, SDK Build Tools 25.0.3, Google USB Driver.

Настраиваю AVD следующим образом:

Device:  2,7" QVGA slider (240x320: ldpi)
Target:  Andriod 4.2.2 - API Level 17
CPU/ABI:  ARM (armeabi-v7a)
Keyboard: True
Skin:    QVGA
RAM:      512    VM Heap:  16
Internal Storage:  200 MiB

Остальные параметры не заданы.

AVD создается и запускается без ошибок.

При запуске Delphi в Target вижу созданное устройство как нерабочее и дополнительную строку "Emulator-5554" которую выбираю в качестве текущего устройства.

При этом в опциях SDK Manager значится

SDK base path:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows
ZipAlign location:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\build-tools\25.0.3\zipalign.exe
Android location:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\tools\Android.bat
Adb location:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\platform-tools\Adb.exe
Aart location:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\build-tools\25.0.3\aapt.exe
SDK API-level location:
C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\platforms\android-25

Ничего не добавляя на форму ставлю ее свойства
Visible := True;
FormFactor.Device := [Desctop,iPhone,iPad];
Height := 300;
Width := 200;

Жму Shift + CTRL + F9 и в окне эмулятора читаю сообщение: "Unfortunately, Project1 has stopped.

Таким образом приложение откомпилировалось без ошибок, нормально установилось на эмулятор, но при этом отказалось запускаться. Как вариант может сообщение не выдаваться, но вместо моей формы — черный экран. Третью неделю не могу разобраться, что у меня не так. Подозреваю, что причина где-то в параметрах SDK Manager, но где именно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 ответов на этот вопрос

  • 0

можно вообще ничего не устанавливать на форме. на мобильных она открывается на весь экран автоматически

а почему не нажать F9 ?

возможно, дебаггер тоже что-нибудь добавит от себя

vm heap тоже бы побольше

попробуйте также выбрать какой-нибудь телефон не настолько шпионского размера

Изменено пользователем krapotkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Перебирал различные параметры устройства и версии Android. Остановился на приведенных ниже. Отладка показывает, что форма создается, но на экране эмулятора ее нет :(.592bde11109ec_.thumb.png.7a872216731fdfd1105daf95ff5f7a5c.png

При этом работает отладчик. Ставлю стоп в обработчике события Form1.onShow и вижу, что размеры формы имеют огромные отрицательные значения. При этом размеры формы в проекте

Height := 300;

Width := 150;

Я не помню, на каком этапе считываются заданные размеры, возможно на момент обработки onShow они еще не считаны. Но вряд ли при этом должны быть такие значения:

592be0b6d1773_.png.999fb327179228efa62321a6c4a37659.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

а если убрать HW keyboard и добавить VM heap ?

размеры формы в проекте никакого значения не имеют

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

была вроде подобная тема, автор наверное что-то делает в OnResize формы. вот проект и вылетает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вы в курсе что Embarcadero рекомендует использовать API которое идет по умолчанию со средой, и не рекомендует сторонние не проверенные со средой версии? У меня на Berlin update 2 стоит 24.3.3 - версия которая пришла со средой, все работает стабильно уже длительное время. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В ‎30‎.‎05‎.‎2017 в 12:59, krapotkin сказал:

а если убрать HW keyboard и добавить VM heap ?

Пробовал увеличивать VM heap до 64, HW keyboard убрал. Не помогло.

В ‎31‎.‎05‎.‎2017 в 21:43, Равиль Зарипов (ZuBy) сказал:

была вроде подобная тема, автор наверное что-то делает в OnResize формы. вот проект и вылетает

onResize у меня пустой.

 

В ‎01‎.‎06‎.‎2017 в 06:10, ENERGY сказал:

Вы в курсе что Embarcadero рекомендует использовать API которое идет по умолчанию со средой, и не рекомендует сторонние не проверенные со средой версии? У меня на Berlin update 2 стоит 24.3.3 - версия которая пришла со средой, все работает стабильно уже длительное время. 

А вот с этим разобраться не смог. Сразу после установки в SDK Base Path несколько параметров с недопустимыми значениями. При компиляции проекта RAD Studio предлагает провести доустановку модулей, но это завершается неудачей. В Android Tools версия 24.3.3 отсутствует.

AVD.png.8aac2dfa5e49f3115c17555bb641150e.png

При этом запуск эмулятора с версиями API-24, API-25 длится бесконечно долго. Также в постановке задачи от работодателя значится "Приложение должно работать на Android начиная с версии 4.3. Как это обеспечить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@ksvsvk

Ну так удалите среду полностью, а затем поставьте с нуля, поставив в инсталяторе галочки на Android SDK.

Цитата

"Приложение должно работать на Android начиная с версии 4.3. Как это обеспечить?

Программа откомпилированная на старшем API будет работать и на старых версиях Android (вообще с Delphi от 4.0.1 - 7).

В общем вам на это не нужно обращать внимания, до тех пор пока вам не понадобится какая то  из функций из Android API (вызвать вручную) - там уже нужно ориентироваться на справку и искать альт. методы которые народ использовал в предыдущих версиях.

 

 

 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

совсем не нужно выкачивать тот же самый дистрибутив SDK, только из установщика Delphi

я начиная с XE5 не менял SDK/NDK, просто указывал пути к ним. уж точно не требуется сносить для этого студию

переустанавливать их тоже можно совершенно отдельно и независимо

и вот тут, как и в студии, рекомендация - ставьте в папку первого уровня. иначе эти пути каждый из которых 500 символов и более, и с русскими буквами, вполне могут сводить с ума к-нить части приложений.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

у меня в берлине сейчас SDK называется 24.4.1 но SDK API-level location смотрит на папку E:\AndroidSdk\platforms\android-19

отлично работает

так что можете переустановить Java, SDK, NDK в папки поближе и просто настроить их в Tools-Options-SDK manager

Изменено пользователем krapotkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Перепробовал все возможное и невозможное. Ставил Delphi 10.1 и Delphi 10.1 Update 2. Отдельно установлены SDK и NDK в C:/ProgramFiles/Android.

На пустое приложение в конфигурации по умолчанию выдает Illegal instruction (4). При клике на "Break" выбрасывает на 22750 строку файла C:/Program Files/Embarcadero/Studio/18.0/Source/RTL/SYS/System.pas

:(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 часа назад, ksvsvk сказал:

 

Проблема в том, что вы используете сторонние SDK. Я вот на днях переустанавливал Windows 10 + Delphi 10.1 Update 2 - никаких проблем не было, сразу после установки откомпилировал проект под Android.

Да ,и я ставил релиз уже со встроенным Update 2. Т.е. не устанавливал его отдельно.

 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

В настройках эмулятора поставьте галочку на  Use Host GPU...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я за полтора года разработки под Android ниразу не использовал эмулятор, т.к. на мобильном удобней и быстрее.. И EMB рекомендует отладку и разработку проводить на реальном мобильном девайсе, а не на эмуляторе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 28.06.2017 в 19:03, ENERGY сказал:

Я за полтора года разработки под Android ниразу не использовал эмулятор, т.к. на мобильном удобней и быстрее.. И EMB рекомендует отладку и разработку проводить на реальном мобильном девайсе, а не на эмуляторе.

 

А у меня возникла проблема и пришлось использовать.

Проблема следующего характера.

Если в targetSDK указать что-то большее, чем 22, то Broadcast reciever не получает сообщения. Чтобы протестировать и убедиться, и проэкспериментировать пришлось настраивать запускать эмулятор на Android 7.

Но да - на устройстве правильнее, но придётся покупать несколько устройств с разными андроидами: 4, 5, 7, 8 и т.д.

Изменено пользователем x11

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу