Я нашел много вопросов, связанных с этой проблемой. Разница здесь в том, что эта ошибка возникает только при сборке Bitrise.
Я могу собрать локальный режим выпуска и разработки, и сборка работает, поэтому я думаю, может быть, это связано с конфигурацией bitrise.
Полная ошибка
Execution failed for task ':package_info_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17
(Я не использую этот package_info_plus напрямую, это должна быть зависимость в одной из библиотек)
Что я пробовал
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
собирается локально, не собирается на битрисе
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
на битрисе не собирается, локально не пробовал
Моя версия флаттера стабильна 3.22.2, Windows для локальной машины и MacOS для Bitrise.
Обновлено: мне кажется, что ни одно из этих изменений в моем build.gradle не будет иметь никакого эффекта, если проблема находится в package_info_plus. Единственная библиотека, которую я использую и использующая этот пакет, — это Sentry. Поэтому я попытался понизить версию Sentry до предыдущей версии, но проблема все еще возникла.
Любая помощь приветствуется.
Такое поведение происходит из-за конфигурации Android package_info_plus
. Для целей Kotlin и Java установлено значение 17. Этот параметр означает, что компилятор будет создавать файлы, подходящие для версии 17 JDK. Разумеется, JDK 11 (в случае дефолта на битрисе) ничего не знает о JDK 17.
К сожалению, только с помощью конфигурации class
мало что можно сделать, поскольку эти настройки не переопределяют друг друга.
Теперь Битрисе часть вопроса. Согласно документации, версия JDK по умолчанию в сборщиках битрисов — build.gradle
. Хорошая новость: можно установить JDK на 17. Вот что вам нужно сделать:
В вашем 11
вам необходимо добавить эти настройки перед любыми шагами, связанными с Android:
primary:
steps:
- set-java-version@1:
inputs:
- set_java_version: '17'
Надеюсь, это поможет решить вашу проблему