Сборка мобильного приложения на платформе 1С — процесс, требующий точного соответствия версий программного обеспечения. Часто после переустановки операционной системы или обновления инструментов разработчика мы сталкиваемся с тем, что ранее работавшая конфигурация перестает собираться. Одной из самых распространенных ошибок является Could not initialize class org.codehaus.groovy.reflection.ReflectionCache. Давайте разберемся, почему это происходит и как исправить ситуацию.
Данная ошибка прямо указывает на конфликт между установленной в вашей системе версией Java Development Kit (JDK) и инструментами сборки Gradle, которые используются мобильной платформой 1С. Когда вы устанавливаете актуальную версию JDK (например, 14 или выше), она может оказаться несовместимой с механизмом Groovy, на котором базируется Gradle в составе мобильного сборщика 1С.
Мобильная платформа 1С в версиях 8.3.17 и близких к ним является достаточно консервативной. Это означает, что она «ожидает» видеть в системе окружение, под которое она проектировалась. Использование свежих версий Java приводит к нарушению этой совместимости, и сборка прерывается на этапе инициализации классов.
Чтобы устранить ошибку, необходимо привести версию Java в соответствие с требованиями сборщика. Давайте рассмотрим пошаговый алгоритм действий.
JDK используется в данный момент. Для этого в командной строке можно ввести команду java -version. Если вы видите версию 14 или выше, вероятнее всего, именно она является источником проблем.JDK 11 или JDK 8. Эти версии наиболее стабильны и протестированы с инструментами сборки 1С.JDK необходимо обновить системную переменную JAVA_HOME в настройках Windows, чтобы сборщик 1С обращался именно к нужной директории с Java.Мы рекомендуем обратить внимание на использование OpenJDK. В связи с изменением политики лицензирования Oracle JDK, использование бесплатных сборок, таких как BellSoft Liberica или Adoptium (ранее AdoptOpenJDK), является более предпочтительным и безопасным вариантом для корпоративной разработки.
Рассмотрим процесс настройки подробнее:
Разберем действия, которые помогут гарантированно решить проблему:
JDK 11 (рекомендуемая версия LTS).JAVA_HOME.JDK 11 (например: C:\Program Files\Java\jdk-11).Path, чтобы в начале списка путей к Java стояла именно новая версия.Если вы все сделали верно, после повторного запуска процесса сборки ошибка ReflectionCache должна исчезнуть. Процесс компиляции APK-файла завершится успешно, так как используемая версия Java будет полностью поддерживаться Gradle, встроенным в мобильную платформу.
В редких случаях проблема может быть не только в версии Java, но и в рассинхронизации компонентов Android SDK. Проанализируйте ситуацию следующим образом:
Android API Level в настройках сборщика 1С. Он должен соответствовать требованиям той версии мобильной платформы, которую вы используете.Build Tools и Platform Tools установлены именно те, которые требуются для работы мобильного сборщика 1С. Попытка обновить их до последних версий часто бывает ошибочной, так как сборщик 1С может просто не уметь работать с новейшими инструментами Google.Android Studio, проверьте через SDK Manager, установлены ли все необходимые пакеты согласно спецификации вашей сборки 1С.Помните, что сборка мобильных приложений — это комплексная задача, требующая дисциплины в выборе версий инструментов. Старайтесь придерживаться тех версий SDK и JDK, которые указаны в документации к используемой вами версии 1С:Предприятия.