Как решить проблемы при сборке APK в мобильной платформе 1С?

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

Сборка мобильного приложения на платформе 1С:Предприятие — это многоступенчатый процесс, который задействует сторонние инструменты: Java Development Kit (JDK), Android SDK и Apache Ant. Малейшее несоответствие в настройках любого из этих компонентов приводит к тому, что процесс прерывается без внятного описания ошибки или с загадочными сообщениями вроде "Ошибка при синтаксическом анализе пакета". В этой статье мы подробно разберем, как диагностировать и устранить основные препятствия на пути к получению заветного файла .apk.

Решение 1: Избавляемся от пробелов и кириллицы в путях

Проанализируем логи сборщика, представленные в обсуждении. Одной из наиболее часто встречающихся проблем является использование системных папок с пробелами в названии (например, C:\Program Files\Java) или путей, содержащих кириллицу (например, C:\Users\Пользователь\Downloads). Утилита Apache Ant, которая управляет процессом компиляции, крайне чувствительна к таким символам в путях командной строки.

Разберем по шагам, как правильно организовать рабочее пространство:

  1. Создадим в корне диска C: отдельную папку с коротким латинским названием, например, C:\MobJava или C:\AndroidBuild.
  2. Перенесем в эту папку все компоненты. Идеальная структура путей должна выглядеть следующим образом:
    • Путь к JDK: C:\Java\jdk1.8.0_131
    • Путь к Android SDK: C:\Android\SDK
    • Путь к Apache Ant: C:\Ant
    • Рабочий каталог (кеш): C:\BuildCache
  3. В настройках сборщика мобильных приложений 1С обновим пути к указанным выше каталогам.

Важный нюанс: Рабочий каталог и каталог кеша также не должны содержать точек в названиях папок (кроме тех, что разделяют расширения файлов). Как показывает практика, наличие точки в названии промежуточной папки может вызвать ошибку "The syntax of the command is incorrect".

Решение 2: Корректный идентификатор приложения и синтаксическая ошибка

Рассмотрим ситуацию, когда сборка завершается успешно (статус BUILD SUCCESSFUL), но при попытке установить полученный .apk на устройство Android выдает сообщение: "Ошибка при синтаксическом анализе пакета".

Выясним причину этого поведения. В сообщениях форума пользователи отмечают, что критическую роль играет Полный идентификатор приложения (Package Name). Рассмотрим правила его формирования:

Проверим также "Синоним" конфигурации в самой базе 1С. Если вы собираете приложение, убедитесь, что в свойствах мобильного приложения в конфигураторе указано имя латиницей без спецсимволов. Изменение регистра в идентификаторе на строчный (нижний) — самый простой способ вылечить ошибку синтаксического анализа при установке.

Решение 3: Проблема отсутствующего build.xml и версии Android SDK Tools

В более новых версиях Android SDK компания Google исключила поддержку Ant, заменив её на Gradle. Однако старые версии сборщика мобильных приложений 1С (особенно серий 8.3.7–8.3.10) продолжают искать скрипты Ant в папке tools\ant.

Если вы видите в логе ошибку: Cannot find C:\...\SDK\tools\ant\build.xml, значит, у вас установлена слишком новая версия Android SDK Tools. Проанализируем, как это исправить:

  1. Сборщику 1С требуется версия SDK Tools не выше 25.2.5.
  2. Если у вас установлена версия 26 и выше, вам необходимо вручную "откатить" папку tools.
  3. Скачайте архив sdk-tools-windows-2525.zip с официального репозитория Android (или из архивов).
  4. Удалите папку tools в вашем каталоге Android SDK и распакуйте туда папку tools из старого архива.

После этой манипуляции файл build.xml появится на своем месте, и Ant сможет запустить процесс компиляции ресурсов.

Решение 4: Подбор правильной версии Java (JDK)

Выбор версии Java — еще один "подводный камень". Несмотря на наличие новых версий (Java 11, 15, 17), мобильная платформа 1С традиционно лучше всего работает с Java 8 (JDK 1.8).

Посмотрим на пример из сообщения №28, где используется jdk-9.0.1. Использование Java 9 и выше часто ломает сборку, так как в этих версиях была изменена структура модулей и удалены некоторые инструменты, на которые полагаются старые скрипты 1С. Если сборка падает на этапе -check-env или при запуске proguard, рекомендуем выполнить следующие действия:

  1. Установить JDK 1.8 (желательно 32-битную версию x86, так как некоторые компоненты сборщика 1С могут быть 32-битными).
  2. Проверить, что переменная окружения JAVA_HOME не конфликтует с настройками внутри сборщика 1С.
  3. Убедиться, что в пути к JDK нет пробелов (как мы разбирали в Решении 1).

Решение 5: Графическая информация и регистр файлов

При сборке приложения 1С распаковывает картинки для иконок и заставок (Splash Screen). В логах часто мелькают предупреждения ОТСУТСТВУЕТ или ошибки libpng warning: iCCP: Not recognizing known sRGB profile.

Хотя предупреждения о профиле sRGB обычно не блокируют сборку, они сигнализируют о том, что файлы изображений были сохранены с метаданными, которые не нравятся компилятору ресурсов Android. Рассмотрим рекомендации по подготовке графики:

Итоговый алгоритм проверки при сбое сборки

Если сборка все равно не идет, проанализируем ситуацию по следующему чек-листу:

  1. Версия мобильной платформы и сборщика: Они должны соответствовать друг другу. Лучше всего брать компоненты из одного комплекта поставки.
  2. Длина путей: Windows имеет ограничение MAX_PATH (260 символов). При сборке 1С создает глубоко вложенные временные папки в рабочем каталоге. Если сам рабочий каталог находится по пути C:\Users\Admin\Documents\MyBuilds\..., лимит может быть превышен. Используйте C:\Build\.
  3. Права доступа: Запускайте 1С:Предприятие от имени Администратора. Это гарантирует, что у сборщика будут права на создание make.bat и запуск исполняемых файлов в папках SDK.
  4. Антивирус: Часто антивирусные программы блокируют выполнение пакетных файлов (.bat) и создание исполняемых файлов в папке TEMP. Попробуйте временно отключить мониторинг или добавить рабочие папки в исключения.

Соблюдение этих правил — короткие пути без пробелов, использование JDK 1.8, SDK Tools 25.2.5 и нижний регистр в идентификаторе приложения — позволяет успешно собрать мобильное приложение 1С практически в любой конфигурации системы.

← На главную