При создании автономного APK-пакета с помощью конфигурации Сборщик мобильных приложений разработчики часто сталкиваются с ситуацией, когда процесс прерывается сообщением «Мобильное приложение собрано с ошибками», а основной лог сборки внезапно обрывается на этапе обработки разрешений или распаковки ресурсов. Разберем основные причины такого поведения и способы их исправления.
Проанализируем типовую ситуацию: в конфигурации сборщика включены различные разрешения (доступ к контактам, календарю, push-уведомлениям и локальным уведомлениям), а лог сборки останавливается на строке Обрабатывается разрешение: LocalNotification, Да.
Выясним причину: функциональность Push-уведомлений и локальных уведомлений (LocalNotification) была добавлена разработчиками фирмы «1С» только начиная с версии мобильной платформы 8.3.6. При попытке собрать мобильное приложение на более старой версии платформы (например, 8.3.5) генератор манифеста и сборочные скрипты не могут корректно обработать неподдерживаемые директивы и аварийно завершают процесс.
Для устранения неполадки выполним следующие шаги:
Локальные уведомления, Push-уведомления, а также мультимедиа или календарь, если они не поддерживаются текущим релизом платформы.Рассмотрим конфигурацию рабочего окружения. Скрипты сборки крайне чувствительны к путям к системным утилитам:
C:\Program Files\Java\... содержит пробел в имени папки. Это приводит к тому, что консольные вызовы Ant или утилиты javac/dx прерываются из-за некорректного разбора параметров командной строки.Чтобы избежать скрытых сбоев, укажем пути в коротком формате DOS (например, C:\PROGRA~1\Java\jdk1.8.0_91) либо перенесем JDK, Android SDK и Apache Ant в корень диска (например, C:\Java\jdk1.8.0_91, C:\android-sdk, C:\ant).
Разберем требования к связке версий компилятора и SDK:
Apache Ant начиная с версии Android SDK Tools 25.3.0. Если для старых версий мобильной платформы 1С используется сборщик на базе Ant, необходимо убедиться, что в Android SDK установлена версия SDK Tools не выше 25.2.5. При автоматическом обновлении SDK через SDK Manager эти утилиты могут перезаписаться или удалиться.Platform SDK (API Level), который жестко зафиксирован в требованиях используемой мобильной платформы 1С.Окно сборщика в пользовательском режиме 1С показывает только высокоуровневые этапы. Если сборка завершилась ошибкой, а в окне 1С нет пояснений, обратимся к файловой системе:
C:\ant).build.log, ant.log или отчет компилятора. В них будет зафиксирован точный текст исключения Java, ошибки слияния AndroidManifest.xml или сбоя компиляции ресурсов.Если цель заключается в отладке и тестировании логики мобильной конфигурации, собирать автономный APK-файл через сборщик не обязательно. Установим на мобильное устройство готовое Мобильное приложение разработчика (клиент разработчика) соответствующей версии платформы 1С и подключимся напрямую к информационной базе, опубликованной на веб-сервере (Apache или IIS).