Как исправить ошибки при сборке мобильного приложения 1С под Android: отсутствие манифеста, проблемы с лицензиями и доступом к файлам

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

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

Проблема 1: Ошибка поиска AndroidManifest.xml и несоответствие версий SDK

Часто при сборке под версию мобильной платформы 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) версий.

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

  1. Установка Android Studio: Для работы с SDK 26+ необходимо установить актуальную версию Android Studio.
  2. Настройка компонентов SDK: Откроем SDK Manager в Android Studio. Перейдем на вкладку "SDK Tools" и обязательно поставим галочку "Show Package Details". Нам необходимо убедиться, что установлены не только современные "Build-Tools", но и пакет Android SDK Tools, obsolete. Без этого "устаревшего" компонента сборщик 1С часто не может найти исполняемые файлы, такие как zipalign, что приводит к сбою генерации ресурсов и отсутствию манифеста в папке bin.
  3. Пути к SDK: В настройках сборщика мобильных приложений 1С важно указывать корректный путь. Обычно он выглядит так: C:\Users\[ИмяПользователя]\AppData\Local\Android\Sdk. Не указывайте путь к самой папке Android Studio, нужен именно каталог SDK.

Проблема 2: Ошибка совместного доступа к файлу (Ошибка 32)

Другая неприятная ситуация — ошибка: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Чаще всего это происходит с файлом keystore.properties или временными объектами в папке temp.

Выясним причину блокировки. Процесс сборки запускает внешние утилиты Java (компилятор, упаковщик). Если предыдущая итерация сборки завершилась аварийно, процессы java.exe или javac.exe могут остаться в памяти, удерживая дескрипторы файлов.

Способы решения:

  1. Перезагрузка: Самый простой, но долгий способ, который помогает очистить все зависшие сессии.
  2. Диспетчер задач: Откроем диспетчер задач и принудительно завершим все процессы, связанные с Java и Android (adb, java, javac).
  3. Исключения антивируса: Проанализируем работу защитного ПО. Антивирусы часто блокируют файлы в момент их создания в папке temp для проверки. Рекомендуется добавить рабочую папку сборщика и папку SDK в список исключений.
  4. Индексация Windows: Отключим индексацию для временного каталога, где происходит сборка, чтобы служба поиска Windows не захватывала файлы в процессе их генерации.

Проблема 3: Лицензионные соглашения SDK

Если сборщик выдает ошибку, связанную с отсутствием лицензий, это означает, что компоненты SDK обновлены, но условия их использования не приняты пользователем в явном виде. Даже если вы работаете в Android Studio, сборщик 1С использует консольные инструменты, требующие отдельного подтверждения.

Чтобы решить эту проблему, выполним следующие действия через командную строку:

  1. Перейдем в папку с установленным SDK, в подкаталог tools/bin.
  2. Запустим команду для принятия всех лицензий:

cd C:\Users\[ИмяПользователя]\AppData\Local\Android\Sdk\tools\bin
sdkmanager --licenses

После запуска необходимо нажать y (yes) на каждый запрос системы. Только после этого консольные утилиты сборки смогут работать в автоматическом режиме.

Проблема 4: Требования к версии JDK

Мобильная платформа 1С 8.3.11 крайне чувствительна к версии Java Development Kit. Посмотрим на технические требования: для корректной работы рекомендуется использовать JDK 8 (версия 1.8).

Если в системе установлена более новая версия (Java 11, 17 или 21), сборщик может выдавать неинформативные ошибки на этапе компиляции кода. Проверим переменные окружения:

Проблема 5: Ошибка "Перенос лицензии" при установке на устройство

Если сборка прошла успешно, но при попытке установить приложение на телефон возникает ошибка, требующая "переноса лицензии" или сообщающая о несовместимости подписи, это означает, что на устройстве уже установлена версия этого приложения, подписанная другим ключом keystore.

Решение: Полностью удалите старое приложение с мобильного устройства перед установкой нового APK. Если вы сменили компьютер или переустановили сборщик, убедитесь, что вы используете тот же файл сертификата (ключ) и те же параметры alias и пароли, которые использовались ранее.

Дополнительные рекомендации по стабильности сборки

Рассмотрим еще несколько нюансов, которые помогут избежать ошибок:

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

← На главную