Сборка мобильного приложения на платформе 1С:Предприятие — это многоэтапный процесс, который часто сопровождается техническими сложностями, особенно при переходе на новые версии платформы и Android SDK. Разберем наиболее распространенные ошибки, с которыми сталкиваются разработчики при использовании мобильной платформы версии 8.3.10 и выше, а также способы их устранения.
Часто при сборке под версию мобильной платформы 8.3.11 и выше возникает ошибка: Ошибка при вызове метода контекста (OpenFile). Сборщик сообщает, что не может найти AndroidManifest.xml в каталоге bin. Проанализируем причину этой ситуации.
Основная причина заключается в том, что начиная с версии 1С 8.3.10.71, требования к Android SDK изменились. Если для старых версий (например, 8.3.9) было достаточно SDK версии 25 и ниже, то для новых платформ требуется SDK версии 26 и выше. При этом структура современного Android SDK (устанавливаемого через Android Studio) значительно отличается от старых автономных (Standalone) версий.
Рассмотрим пошагово, как правильно подготовить среду разработки:
Android SDK Tools, obsolete. Без этого "устаревшего" компонента сборщик 1С часто не может найти исполняемые файлы, такие как zipalign, что приводит к сбою генерации ресурсов и отсутствию манифеста в папке bin.C:\Users\[ИмяПользователя]\AppData\Local\Android\Sdk. Не указывайте путь к самой папке Android Studio, нужен именно каталог SDK.Другая неприятная ситуация — ошибка: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Чаще всего это происходит с файлом keystore.properties или временными объектами в папке temp.
Выясним причину блокировки. Процесс сборки запускает внешние утилиты Java (компилятор, упаковщик). Если предыдущая итерация сборки завершилась аварийно, процессы java.exe или javac.exe могут остаться в памяти, удерживая дескрипторы файлов.
Способы решения:
temp для проверки. Рекомендуется добавить рабочую папку сборщика и папку SDK в список исключений.Если сборщик выдает ошибку, связанную с отсутствием лицензий, это означает, что компоненты SDK обновлены, но условия их использования не приняты пользователем в явном виде. Даже если вы работаете в Android Studio, сборщик 1С использует консольные инструменты, требующие отдельного подтверждения.
Чтобы решить эту проблему, выполним следующие действия через командную строку:
tools/bin.
cd C:\Users\[ИмяПользователя]\AppData\Local\Android\Sdk\tools\bin
sdkmanager --licenses
После запуска необходимо нажать y (yes) на каждый запрос системы. Только после этого консольные утилиты сборки смогут работать в автоматическом режиме.
Мобильная платформа 1С 8.3.11 крайне чувствительна к версии Java Development Kit. Посмотрим на технические требования: для корректной работы рекомендуется использовать JDK 8 (версия 1.8).
Если в системе установлена более новая версия (Java 11, 17 или 21), сборщик может выдавать неинформативные ошибки на этапе компиляции кода. Проверим переменные окружения:
JAVA_HOME должна указывать на путь к JDK 8.Path путь к bin версии JDK 8 должен стоять выше других версий Java.Если сборка прошла успешно, но при попытке установить приложение на телефон возникает ошибка, требующая "переноса лицензии" или сообщающая о несовместимости подписи, это означает, что на устройстве уже установлена версия этого приложения, подписанная другим ключом keystore.
Решение: Полностью удалите старое приложение с мобильного устройства перед установкой нового APK. Если вы сменили компьютер или переустановили сборщик, убедитесь, что вы используете тот же файл сертификата (ключ) и те же параметры alias и пароли, которые использовались ранее.
Рассмотрим еще несколько нюансов, которые помогут избежать ошибок:
C:\1C_Build). Инструменты Android плохо работают с путями длиннее 255 символов.Build-Tools версии 27.0.3 или 28.0.3, так как более поздние версии могут иметь несовместимые параметры командной строки, которые не понимает старый сборщик 1С.Таким образом, успех сборки мобильного приложения зависит от точного соответствия версий платформы 1С, Android SDK и JDK, а также от правильной настройки прав доступа и принятия всех лицензионных соглашений.