Как исправить ошибку Could not determine java version при сборке мобильного приложения 1С

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

При сборке мобильного приложения на платформе 1С:Предприятие разработчики часто сталкиваются с критической ошибкой Could not determine java version from '10.0.1' (или любой другой версии выше 8). Эта проблема полностью блокирует процесс создания apk-файла и может поставить в тупик, особенно если вы используете актуальные версии Java JDK. В этой статье мы подробно разберем причины возникновения этой ситуации, рассмотрим пошаговое решение и изучим сопутствующие проблемы, возникающие при настройке среды сборки.

Разбор причины ошибки: конфликт Gradle и Java

Для начала проанализируем ситуацию. Ошибка Could not determine java version генерируется не самой платформой 1С, а системой автоматизации сборки Gradle, которая встроена в «Сборщик мобильных приложений». В версиях платформы 1С 8.3.12 и близких к ней используется Gradle версии 3.3 или аналогичные старые ветки.

Важно понимать, что версии Gradle имеют жесткие ограничения по совместимости с Java:

  1. Gradle 3.x и более ранние версии «не знают» о существовании Java 9, 10, 11 и выше.
  2. В этих версиях Java изменился формат вывода номера версии, который Gradle не может корректно распознать.
  3. Для успешной работы старых версий сборщиков 1С использование Java 8 (JDK 1.8) является обязательным и безальтернативным условием.

Посмотрим на пример из лога: Путь к Java: C:\Program Files\Java\jdk-10.0.1. Именно эта строка указывает на источник проблемы. Несмотря на то, что Java 10 более современная, для инструментов сборки того периода она является «неизвестным объектом».

Шаг 1: Установка и настройка корректной версии JDK

Выясним, как правильно настроить среду. Первым делом необходимо скачать и установить Java Development Kit (JDK) 8. Рекомендуется использовать официальный дистрибутив от Oracle или OpenJDK.

Рассмотрим важные нюансы при установке:

  1. Пути к установке: Крайне желательно избегать пробелов в путях. Вместо стандартного C:\Program Files\Java\jdk1.8.0_xxx установите JDK в корень диска, например, C:\Java\jdk1.8. Это поможет избежать проблем с парсингом путей в командных файлах .bat.
  2. Разрядность: Если вы используете 64-битную платформу 1С, устанавливайте 64-битную версию JDK. Однако, если возникают необъяснимые ошибки при старте gradlew.bat, иногда помогает использование 32-битной версии JDK 8.
  3. Переменные окружения: Убедитесь, что системная переменная JAVA_HOME указывает именно на папку с JDK 8.

Шаг 2: Решение проблемы с NDK (missing platforms directory)

После смены версии Java вы можете столкнуться со следующей ошибкой: NDK is missing a platforms directory. Проанализируем, почему это происходит. Если вы устанавливали Android SDK через Android Studio, она могла автоматически создать пустую папку ndk-bundle внутри каталога SDK.

Сборщик 1С при поиске инструментов видит эту папку и пытается задействовать компоненты NDK. Так как папка пуста, процесс прерывается с ошибкой. Разберем варианты решения:

Шаг 3: Исправление ошибок загрузки библиотек (JCenter и Google Maven)

Еще одна типичная проблема, видимая в логах: Could not find common.jar (android.arch.core:common:1.1.0). Ошибка возникает при попытке скачать необходимые зависимости из репозиториев.

Выясним причину: большинство старых конфигураций Gradle в 1С настроены на репозиторий JCenter. С 2021 года этот репозиторий перешел в режим «только чтение» и перестал обновляться, а многие библиотеки переехали в Google Maven. Чтобы решить это, рассмотрим алгоритм правки конфигурации:

  1. Найдите рабочий каталог сборки (путь указан в логе как Рабочий каталог (и кеш)).
  2. Внутри папки проекта найдите файл build.gradle.
  3. В секции repositories добавьте строку google() перед jcenter().

Пример правильной структуры репозиториев в коде:


allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://maven.google.com" }
    }
}

Шаг 4: Выбор стабильной версии мобильной платформы

Проанализируем опыт разработчиков, упомянутый в обсуждении. Не все версии мобильной платформы одинаково стабильны. Например, в версии 8.3.12.67 были замечены проблемы с передачей двоичных данных в POST-запросах. Если ваше приложение активно работает с веб-сервисами, рекомендуется использовать версию 8.3.12.60 или откатиться на 8.3.12.46.

Также стоит учитывать следующие особенности:

Рекомендации по организации рабочего пространства

Для минимизации ошибок при сборке мобильных приложений 1С на ОС Windows 10/11, придерживайтесь следующих правил:

  1. Длина путей: Windows имеет ограничение в 260 символов на длину пути. Gradle создает очень глубокую вложенность папок при кэшировании. Перенесите рабочий каталог сборщика в корень диска, например: C:\1C_Mobile_Build\temp.
  2. Права доступа: Запускайте «Сборщик мобильных приложений» от имени администратора, чтобы у системы не возникло проблем при создании временных файлов и запуске gradlew.bat.
  3. Чистка кэша: Если сборка упала один раз, перед следующей попыткой обязательно очищайте рабочий каталог (папку temp), иначе Gradle может попытаться использовать битые или недокачанные артефакты.

Соблюдение этих инструкций и использование Java 8 гарантирует успешную сборку мобильного приложения и избавляет от большинства ошибок, связанных с инструментарием Android SDK и Gradle.

← На главную