Рассмотрим распространенную ситуацию: вы выгрузили конфигурацию «1С:Мобильная касса» в файл 1cema.xml, загрузили ее через мобильную платформу на устройство или собрали собственный APK-файл. Приложение запускается, но при попытке подключить оборудование, например, сканер штрихкодов или онлайн-кассу, в настройках отображается статус «Драйвер не установлен». При этом официальное приложение от 1С из магазина приложений на этом же устройстве работает без проблем. Давайте разберемся, почему так происходит и как это исправить.
Проблема кроется в способе доставки и установки нативных компонентов драйвера (специализированных библиотек для Android) на мобильное устройство. Проанализируем две основные причины возникновения этой ошибки: некорректные настройки веб-сервера и отсутствие в сборке файлов для нужной архитектуры процессора.
Этот сценарий актуален, если вы публикуете мобильное приложение на своем веб-сервере и загружаете конфигурацию на устройство по сети. Мобильная платформа 1С при установке драйвера пытается скачать с сервера нативные библиотеки, которые чаще всего имеют расширение .so. По умолчанию веб-серверы, такие как IIS или Apache, могут не знать, как обрабатывать файлы с таким расширением. В результате они либо блокируют их скачивание, либо отдают с неправильным типом содержимого (Content-Type), что мешает мобильной платформе их корректно установить.
Чтобы решить эту проблему, необходимо явно указать веб-серверу, как обрабатывать файлы драйверов. Для этого нужно добавить соответствующие MIME-типы в его настройки.
Для веб-сервера IIS (Internet Information Services):
.soapplication/octet-stream.apkapplication/vnd.android.package-archiveТип application/octet-stream сообщает серверу, что это просто поток двоичных данных, который нужно передать клиенту без какой-либо дополнительной обработки.
Для веб-сервера Apache:
Необходимо отредактировать конфигурационный файл сервера (обычно это httpd.conf) или файл .htaccess в корневой директории публикации. Добавьте в него следующую строку:
AddType application/octet-stream .so
После сохранения изменений не забудьте перезапустить службу Apache. После этих настроек мобильное приложение сможет без проблем скачать и установить необходимые компоненты драйвера.
Вторая распространенная проблема возникает, когда вы не загружаете конфигурацию с сервера, а собираете полноценный установочный APK-файл с помощью «Сборщика мобильных приложений» 1С. Вы можете столкнуться с ситуацией, когда собранное приложение отлично работает на одном устройстве (например, современном телефоне с 64-битным процессором), но на другом (например, старом планшете с 32-битным процессором) драйверы не устанавливаются.
Выясним причину. Драйверы для Android содержат нативные библиотеки, скомпилированные под конкретные архитектуры процессоров. Самые распространенные из них:
Если в состав вашего драйвера (в конфигурации 1С он хранится в виде макета) включены библиотеки только для arm64-v8a, то на 32-битном устройстве (armeabi-v7a) они просто не смогут запуститься. Система не найдет подходящий файл, и вы увидите ошибку «Драйвер не установлен».
Разберем по шагам, как это исправить:
arm64-v8a, armeabi-v7a и т.д. Внутри каждого из этих каталогов должны лежать файлы библиотек (.so).arm64-v8a, значит, вы нашли причину проблемы.1cema.zip) или на сайте производителя оборудования. Скопируйте недостающие каталоги с файлами (например, папку armeabi-v7a) в ваш распакованный макет.Таким образом, перед сборкой приложения всегда убеждайтесь, что макеты драйверов оборудования содержат все необходимые для ваших целевых устройств архитектуры процессоров.