При подготовке мобильного приложения на платформе «1С:Предприятие» разработчики часто сталкиваются со сбоями на этапе генерации установочного пакета APK. Сборщик сообщает о непредвиденных ошибках, не находит требуемые утилиты или зависает в процессе компиляции. Разберем детально причины возникновения таких неполадок и рассмотрим проверенные способы настройки окружения для успешной сборки.
Проанализируем ключевые факторы, из-за которых процесс формирования APK завершается аварийно:
Apache Ant для сборки проекта. Начиная с версии Android SDK Tools 25.3.0, компания Google полностью удалила поддержку Ant и сопутствующие скрипты генерации сборки. При попытке использовать современные версии SDK со старыми релизами сборщика процесс компиляции прерывается.JDK 8 (1.8). При установке более новых версий Java (JDK 9, 11, 17) скрипты сборки не могут инициализироваться. Для современных сборок на базе Gradle стандартом является JDK 11.JAVA_HOME и ANDROID_HOME мешают сборщику корректно вызывать внешние компиляторы.Если используется версия мобильной платформы и сборщика, требующая Apache Ant, необходимо зафиксировать версию инструментов Android SDK на уровне 25.2.5. Разберем по шагам, как это сделать:
C:\Android\SDK, C:\Android\JDK8, C:\Android\ant, C:\temp_build.tools и заменим ее содержимое на архивную версию Android SDK Tools 25.2.5. Не обновляем утилиты через SDK Manager выше указанной версии, чтобы не перезаписать исполняемые файлы Ant-генератора.Android SDK Platform-tools, Android SDK Build-tools и платформы API (например, API 24 или API 25), которые запрашивает мобильная платформа 1С.JDK 8 (1.8) соответствующей разрядности (для 64-битной 1С ставим x64).JAVA_HOME=C:\Android\JDK8, ANDROID_HOME=C:\Android\SDK, а в переменную PATH добавим пути к %JAVA_HOME%\bin и %ANDROID_HOME%\platform-tools.C:\temp_build.Более современный и гибкий подход — собрать мобильное приложение напрямую с использованием системы сборки Gradle без использования устаревших версий Android SDK Tools. Рассмотрим последовательность действий:
.1cema через меню Конфигурация — Мобильное приложение — Записать конфигурацию..1cema, файлы лицензий, графические иконки и заставки в соответствующие каталоги ассетов и ресурсов проекта.Android Studio. Студия автоматически выполнит синхронизацию зависимостей Gradle.
gradlew assembleDebug
Для релизной сборки запустим:
gradlew assembleRelease
Для установки и работы приложения на реальных мобильных устройствах под управлением современных версий Android итоговый APK-пакет должен быть правильно выровнен и подписан. Проанализируем порядок действий:
keytool из комплекта JDK:
keytool -genkey -v -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 2048 -validity 10000
zipalign из состава build-tools:
zipalign -v -p 4 app-unsigned.apk app-aligned.apk
apksigner sign --ks my-release-key.keystore --ks-key-alias my_alias --out app-release.apk app-aligned.apk
apksigner verify -v app-release.apk
Соблюдение соответствия версий утилит сборки, использование путей без кириллицы и переход на Gradle-сборку гарантируют стабильное получение рабочего установочного файла APK.