Почему мобильное приложение 1С не запускается на новых версиях Android и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Рассмотрим распространенную ситуацию: мобильное приложение, разработанное на платформе 1С, отлично работает на старых версиях Android (например, Android 8), но при попытке установки на более новые версии (Android 9, 10 и выше) возникают проблемы. Приложение либо не устанавливается вовсе, либо устанавливается, но сразу же аварийно завершает работу с ошибкой. Разберемся, почему так происходит и что с этим делать.

Анализируем причины проблемы

Основная причина такого поведения кроется в политике Google и постоянном развитии операционной системы Android. С каждой новой версией вводятся более строгие требования к безопасности, управлению ресурсами и доступу к данным. Приложение, собранное по старым правилам, просто не может соответствовать новым стандартам. Выделим несколько ключевых моментов:

  1. Требования к целевому уровню API (API Level). Google Play требует, чтобы все новые приложения и их обновления были нацелены (скомпилированы) на недавние версии Android. Это гарантирует, что приложение использует актуальные и безопасные механизмы ОС. Если ваше приложение было собрано давно, его целевой уровень API устарел, что и приводит к несовместимости.

  2. Изменения в системе разрешений. В новых версиях Android значительно ужесточились правила доступа к файловой системе, контактам, местоположению и другим данным пользователя. Старое приложение может пытаться получить доступ к файлам по устаревшим путям или без запроса разрешений нового образца, что система безопасности немедленно пресекает, вызывая сбой.

  3. Ограничения фоновой работы. Для экономии заряда батареи современные версии Android агрессивно ограничивают выполнение процессов в фоновом режиме. Если ваше приложение выполняло какие-либо длительные операции (синхронизация, обработка данных) в фоне, система может принудительно его остановить, что приведет к ошибке "в приложении произошла ошибка".

Таким образом, единственно верное решение — это обновить инструменты разработки и пересобрать приложение с учетом новых требований.

Пошаговый план решения: пересборка приложения

Чтобы "оживить" приложение на современных устройствах, необходимо привести его в соответствие с актуальными стандартами. Проанализируем шаги, которые нужно для этого предпринять.

  1. Обновление инструментов разработки. Первое и главное — обновить все компоненты, участвующие в сборке. Это включает в себя Android Studio и, что особенно важно для разработчиков 1С, саму конфигурацию "Сборщик мобильных приложений". Именно в новой версии сборщика заложены поддержка актуальных API и необходимые библиотеки.

  2. Тестирование на эмуляторах. Перед тем как собирать финальную версию, настоятельно рекомендуется протестировать работу на эмуляторах. В Android Studio (на закладке SDK Platforms) можно установить образы систем разных версий Android (9, 10, 11 и т.д.). Запуск вашего приложения на эмуляторе поможет выявить потенциальные проблемы до того, как вы распространите его среди пользователей.

  3. Сборка нового APK-файла. После обновления всех инструментов и успешного тестирования, можно приступать к финальной сборке. Используйте обновленный "Сборщик мобильных приложений" для генерации нового APK-файла из вашей базы данных.

Новые вопросы после сборки: разбираемся с последствиями

После успешной пересборки вы можете столкнуться с новыми явлениями, которые вызывают вопросы. Рассмотрим два наиболее частых из них.

1. Что за новое разрешение "Play Install Referrer API"?

При установке приложения, собранного новыми инструментами, вы можете заметить, что оно запрашивает новое разрешение — Play Install Referrer API. Пугаться этого не стоит.

2. Критически важно: смена ключа разработчика

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

Ключ подписи — это уникальный цифровой идентификатор автора приложения. Операционная система Android считает приложения, подписанные разными ключами, абсолютно разными приложениями, даже если у них совпадает название и внутренний идентификатор пакета.

Что это означает на практике:

  1. Невозможность обновления. Пользователи не смогут установить новую версию приложения поверх старой как обычное обновление. Android выдаст ошибку, так как подписи не совпадают.

  2. Необходимость полной переустановки. Единственный способ для пользователей перейти на новую версию — это сначала полностью удалить старое приложение, а затем установить новое, подписанное уже новым ключом.

  3. Риск потери локальных данных. Это самый главный и болезненный риск. При удалении приложения стираются все его локальные данные: кэш, настройки, сохраненные документы, которые не были синхронизированы с сервером. Критически важно заранее предупредить пользователей о необходимости сохранить или синхронизировать все важные данные перед удалением старой версии.

Если вы столкнулись с ошибкой при попытке использовать старый ключ (например, неверный пароль), знайте, что восстановить его практически невозможно. Поэтому управление ключами — это зона высокой ответственности разработчика.

Итог: решение пересобрать приложение с использованием обновленных инструментов является правильным и необходимым. Понимание природы новых разрешений и последствий смены ключа подписи поможет вам грамотно организовать переход пользователей на обновленную версию приложения, минимизировав возможные проблемы и риск потери данных.

← На главную