Как решить ошибки сборки мобильного приложения 1С на платформе 8.3.11 и выше?

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

При переходе на новые версии мобильной платформы 1С (начиная с 8.3.11) многие разработчики сталкиваются с рядом специфических ошибок при сборке APK-файлов. Сборщик начинает требовать новые версии Android SDK, ругается на используемую версию Java или внезапно прерывает процесс из-за ошибок распаковки файлов Gradle. Давайте подробно рассмотрим основные проблемы и разберем по шагам, как правильно настроить рабочее окружение для успешной сборки мобильного приложения.

Проблема 1: Требование Android SDK Tools версии 26.x и старше

Начиная с версии 8.3.11, мобильная платформа 1С перешла с системы сборки Ant на более современную Gradle. В связи с этим при попытке собрать приложение вы можете получить следующее сообщение:


Используемая мобильная платформа может быть собрана только при использовании Android SDK Tools версии 26.x и старше (используется Gradle). Для сборки используется версия 26.0.1

Даже если вы обновили Android SDK, 1С может "не видеть" нужную версию компонентов. Разберем по шагам, как обеспечить сборщику доступ к правильным инструментам:

  1. Поскольку компания Google убрала автономный SDK Manager, установите полноценную Android Studio.
  2. Запустите Android Studio и откройте внутренний SDK Manager.
  3. Перейдите на вкладку SDK Tools.
  4. В правом нижнем углу обязательно установите галочку Show Package Details (Показать детали пакетов). Без нее вы не увидите конкретные подверсии.
  5. В раскрывшемся списке найдите пункт Android SDK Build-Tools и вручную отметьте для установки версию 26.x (например, 26.0.3).
  6. Нажмите Apply и дождитесь скачивания пакетов.
  7. В параметрах конфигурации "Сборщик мобильных приложений" обязательно укажите путь в поле Android SDK (версия 26+).

Проблема 2: Ошибки доступа и невидимость Android SDK для сервера 1С

Зачастую Android Studio по умолчанию устанавливает SDK в скрытую папку профиля пользователя, например: C:\Users\ИмяПользователя\AppData\Local\Android\Sdk. Проанализируем ситуацию: если вы выполняете сборку на сервере 1С, служба сервера обычно работает под отдельной системной учетной записью (например, USR1CV8) и банально не имеет прав доступа к вашей пользовательской папке.

Посмотрим, как это исправить:

  1. Создайте новую папку в корне диска с коротким именем, без пробелов и кириллицы. Идеальный вариант: C:\Android_SDK или C:\mobile\sdk.
  2. Переместите туда все скачанные компоненты SDK.
  3. Укажите этот новый короткий путь в настройках Сборщика мобильных приложений.
  4. Убедитесь, что у пользователя, под которым работает сервер 1С, есть полные права (чтение и запись) на эту директорию.

Короткие пути без спецсимволов также предотвращают многие внутренние сбои компиляторов внутри самого Android SDK.

Проблема 3: Ошибка Could not determine java version from '11.0.2'

Рассмотрим следующую ошибку, которая возникает из-за конфликта версий платформы и Java Development Kit (JDK):

Could not determine java version from '11.0.2'.

Выясним причину. Сборщики мобильных приложений 1С версий 8.3.11–8.3.13 жестко используют под капотом старые версии Gradle (например, 3.3 или 4.6). Эти версии скриптов вшиты в zip-архивы мобильной платформы 1С (такие как prjandroid-arm.zip). Проблема в том, что старые версии Gradle не умеют работать с JDK новее 8-й версии (и совершенно не знают про Java 11).

Самый стабильный способ решения — не пытаться подменить Gradle внутри платформы 1С, а использовать совместимую версию Java:

  1. Скачайте и установите Java Development Kit (JDK) версии 8 (1.8) (например, JDK 1.8.0_172).
  2. Установите его в директорию с простым путем (например, C:\Java\jdk1.8.0).
  3. В настройках Сборщика мобильных приложений 1С измените путь к JDK на папку с версией 1.8.

Проблема 4: Ошибки скачивания Gradle и распаковки файлов (Access is denied)

Иногда процесс сборки обрывается на этапе распаковки служебных файлов Gradle с ошибками вида java.io.FileNotFoundException или Access is denied. Посмотрим на пример лога:


Exception in thread "main" java.io.FileNotFoundException: c:\cache\gradle\wrapper\dists\gradle-3.3-all\...\gradle-3.3-all.zip (The system cannot find the file specified)
...
Exception in thread "main" java.io.FileNotFoundException: c:\cache\gradle\wrapper\dists\gradle-3.3-all\...\docs\userguide\userguide.pdf (Access is denied)

Эта проблема связана с жесткими блокировками файловой системы во время работы платформы. Разберем основные причины и способы устранения:

  1. Влияние антивируса. В 90% случаев инициатором ошибки Access is denied выступает антивирус (очень часто это Касперский), который в реальном времени блокирует доступ к создаваемым zip-архивам и pdf-файлам, считая подозрительной активность java-процесса. Решение: добавьте временную папку кэша Gradle (в примере выше это C:\cache\gradle\) в доверенную зону (исключения) вашего антивируса.
  2. Права администратора. Запустите 1С (Конфигуратор или режим Предприятия, откуда запускается Сборщик) от имени Администратора. Это даст платформе необходимые привилегии для создания и распаковки временных файлов на системном диске.
  3. Проверка прав на папку кэша. Убедитесь, что директория кэша Gradle не защищена от записи на уровне свойств Windows (снимите галочку "Только для чтения" для папки и всех вложенных файлов).

Применив описанные выше настройки — используя JDK 1.8, корректно скачав SDK Tools 26-й версии, разместив их в коротких путях и защитив от влияния антивируса — вы сможете успешно и без сбоев компилировать мобильные приложения на платформе 1С.

← На главную