Почему не собирается мобильное приложение Android Arm в 1С и как это исправить?

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

Процесс сборки мобильного приложения 1С для Android — это многоступенчатая процедура, которая требует идеальной настройки окружения. Малейшее несоответствие версий JDK, SDK или даже длинные пути к файлам могут привести к фатальным ошибкам, которые неочевидны из стандартного лога сборщика. В этой статье мы подробно разберем, почему возникают ошибки вида Error retrieving parent for item, проблемы с версиями Java и как правильно подготовить рабочее место для стабильной компиляции APK-файлов.

Разбираем ошибку ресурсов Material Theme и версии API

Одной из самых распространенных проблем при переходе на новые релизы мобильной платформы (например, с 8.3.8.46 на 8.3.8.52) является ошибка в файлах стилей, таких как appinvite_styles.xml. Ошибка выглядит следующим образом:

error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Theme.Material.Light.DialogWhenLarge.NoActionBar'

Проанализируем ситуацию: эта ошибка прямо указывает на то, что компилятор (инструмент aapt из Android SDK) не может найти определение темы Material. Данная тема была введена в Android только начиная с версии API 21 (Android 5.0). Если в вашем SDK установлены только более старые версии (например, API 17 или 19), сборка завершится неудачей.

Рассмотрим по шагам, что нужно сделать:

  1. Обновите Android SDK: Откройте Android SDK Manager и убедитесь, что у вас установлена платформа Android версии 6.0 (API 23) или выше. Даже если ваше приложение должно запускаться на старых устройствах с Android 4.2.2, инструменты сборки должны иметь доступ к описанию новых стилей для корректной компиляции библиотек совместимости.
  2. Установите библиотеки поддержки: В разделе Extras менеджера SDK обязательно должны быть установлены Android Support Repository и Google Repository. Мобильная платформа 1С активно использует элементы AppCompat, и отсутствие этих репозиториев — частая причина ошибок ресурсов.
  3. Проверьте минимальный и целевой SDK: В настройках сборщика мобильных приложений 1С укажите «Минимальную версию Android», соответствующую вашим требованиям (например, API 17), но убедитесь, что компоненты для сборки (Build-Tools) и SDK Platform установлены актуальные.

Решаем конфликт версий Java (JDK)

Часто разработчики сталкиваются с ошибкой: Could not determine java version from '9.0.4'. Это происходит на этапе выполнения сценариев Gradle, которые используются платформой 1С для автоматизации сборки.

Выясним причину: скрипты сборки, зашитые в мобильную платформу 1С версий 8.3.8–8.3.10, создавались в то время, когда стандартом была Java 8. Новые версии Java (9, 11, 17 и выше) изменили формат вывода информации о версии, из-за чего Gradle не может их распознать и аварийно завершает работу.

Для решения этой проблемы выполним следующие действия:

Подтверждение лицензионных соглашений SDK

Иногда сборка прерывается сообщением: You have not accepted the license agreements of the following SDK components. Это означает, что вы скачали компоненты SDK, но юридически не подтвердили согласие с условиями использования Google. Сборщик 1С не умеет выводить интерактивное окно для принятия лицензий, поэтому он просто завершает процесс с ошибкой.

Разберем, как исправить это вручную:

  1. Откройте командную строку (cmd) от имени администратора.
  2. Перейдите в каталог, где установлены инструменты SDK, а именно в папку tools\bin (например: cd /d C:\Android\sdk\tools\bin).
  3. Запустите команду: sdkmanager --licenses.
  4. Система предложит вам несколько блоков лицензий. На каждый вопрос «Review licenses that are not yet accepted?» нажимайте y (yes) и подтверждайте клавишей Enter, пока не увидите сообщение All SDK package licenses accepted.

Внутренние ошибки платформы и кэширование

Если лог сборки Gradle чист, но 1С выдает ошибку: Ошибка получения информации о файле: {CommonModule.StoredFileManagement.Module(300)}: Отсутствует измерение для объекта..., значит проблема кроется внутри самой информационной базы сборщика или метаданных приложения.

Проанализируем ситуацию и применим следующие методы:

Стабильные версии инструментов для 1С 8.3.10.x

Посмотрим на практический пример успешной настройки окружения для сборки на платформе 8.3.10.84. Опытным путем установлено, что наиболее стабильно процесс проходит при использовании следующих версий инструментов:

Если вы столкнулись с неопределенной ошибкой, всегда проверяйте файл build-android-arm.log, который создается во временной папке сборки. Именно там, в самом конце файла, обычно содержится технический текст ошибки от Gradle или компилятора Java, который поможет локализовать проблему.

Соблюдение этих рекомендаций позволит вам избежать большинства "фантомных" ошибок и сделать процесс выпуска мобильных решений на платформе 1С предсказуемым и быстрым.

← На главную