Разработчики мобильных решений на платформе 1С часто сталкиваются с ситуацией, когда стабильно работавшее приложение после обновления операционной системы устройства до Android 9 (API level 28) начинает мгновенно закрываться («вылетать») сразу при запуске. При этом на Android 8 и более ранних версиях никаких проблем не наблюдалось. Особенно остро эта проблема проявляется на старых версиях мобильной платформы 1С (например, 8.3.12.60_mobile).
В этой статье мы подробно проанализируем причины такого поведения операционной системы Android 9, разберем по шагам методы устранения критического сбоя и рассмотрим альтернативные варианты развертывания мобильных приложений, которые помогут избежать подобных проблем в будущем.
Для того чтобы эффективно решить проблему, нам необходимо понять, какие именно изменения в архитектуре Android 9 привели к неработоспособности мобильной платформы 1С младших версий. Рассмотрим ключевые факторы:
8.3.13) активно использовали эти «серые» интерфейсы для управления памятью, низкоуровневой работы с графическим интерфейсом и системными службами. В Android 9 попытка обращения к заблокированному системному методу вызывает мгновенный аварийный останов процесса без генерации исключений, которые могла бы перехватить платформа.Теперь, зная теоретические основы проблемы, перейдем к практическим сценариям исправления ситуации.
Самый простой и надежный способ решить проблему с вылетом приложения — это обновление версии мобильной платформы 1С. Как показывает практика практикующих разработчиков, минимальная версия платформы, на которой обеспечивается стабильная работа в Android 9, — это 8.3.13.45. Однако для соответствия современным требованиям безопасности и обеспечения 64-битной совместимости мы настоятельно рекомендуем использовать версию 8.3.15.62 и выше.
Для обновления выполним следующие шаги:
8.3.15.62 или более позднюю) с официального портала поддержки пользователей 1С.1cem-arm.apk или 1cem-x86.apk в зависимости от процессора вашего устройства) и проверим запуск информационной базы в режиме отладки.Если вы компилируете конфигурацию в полноценный автономный APK-файл с помощью Сборщика мобильных приложений 1С, простого обновления версии платформы в базе будет недостаточно. Нам потребуется обновить всю цепочку инструментов разработки на рабочем компьютере.
Рассмотрим подробнее требования к окружению при переходе на платформу 1С 8.3.15 и выше:
После обновления окружения запустим Сборщик мобильных приложений, укажем новые пути к JDK и SDK, выберем обновленный zip-архив мобильной платформы 1С и выполним повторную сборку нашего APK-файла.
Постоянная пересборка APK-файлов под каждую новую версию операционной системы Android или при минимальных изменениях в коде конфигурации — это трудоемкий процесс. Если ваше приложение предназначено для внутреннего использования сотрудниками компании (например, мобильными торговыми представителями), мы можем применить альтернативный и гораздо более удобный способ развертывания баз.
Вместо сборки индивидуальных APK-пакетов мы можем использовать стандартное приложение «1С:Предприятие» (мобильный стартер) из Google Play или официального сайта 1С, а список баз и сами обновления раздавать централизованно с помощью файла конфигурации ibases.v8i.
Разберем этот механизм по шагам:
https://server.company.ru/shoptable).ibases.v8i. Этот файл будет содержать описание нашей информационной базы и параметры ее подключения.ibases.v8i следующим содержимым:
[Мобильная база Торговля]
Connect=Ws="https://server.company.ru/shoptable";
id=1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p
DefaultLanguage=ru
AppKind=MobileClient
Обратите внимание на параметр AppKind. В зависимости от архитектуры вашего решения, вы можете указать значение MobileClient (для работы в режиме мобильного клиента с постоянным подключением к серверу) или использовать параметры запуска мобильного приложения с автономной базой данных.
После этого нам достаточно передать файл ibases.v8i на мобильные устройства сотрудников (например, отправить по почте или выложить на корпоративный портал). При открытии этого файла на Android-устройстве стандартный стартер мобильной платформы 1С автоматически импортирует настройки подключения, создаст базу и загрузит актуальную конфигурацию с вашего веб-сервера. При выходе обновлений конфигурации на сервере мобильные устройства обновятся автоматически при следующем сеансе связи.
Использование этого метода полностью избавляет системных администраторов и программистов от необходимости собирать, подписывать ключами безопасности и распространять новые версии APK-файлов при каждом изменении платформы Android или кода вашей программы.