buildFeatures нестабилен, потому что его сигнатура ссылается на нестабильность, помеченную @Incubating.

Обновление проекта студии Android и переход на Kotlin dsl. Я вижу приведенное выше предупреждение, обертывающее блок buildFeatures, где я включаю привязку данных и более поздние функции привязки представления, мои версии плагинов AS и gradle, kotlin приведены ниже:

Android-студия V4.0

// defined in buildSrc\build.gradle.kts

val kotlinVersion     = "1.3.71"
val gradleVersion     = "4.0.0"

все работает нормально, за исключением предупреждения об этом блоке в моем (приложении) build.gradle.kts во всех трех строках:

 buildFeatures{
     dataBinding = true
     viewBinding = true
 }

предупреждающие сообщения, которые появляются при наведении курсора на каждую строку, следующие:

'buildFeatures(kotlin.jvm.functions.Function1<? super com.android.build.api.dsl.ApplicationBuildFeatures,kotlin.Unit>)'
is unstable because its signature references unstable 'com.android.build.api.dsl.ApplicationBuildFeatures' 
marked with @Incubating 
'getDataBinding()' is declared in unstable 'com.android.build.api.dsl.BuildFeatures' marked with @Incubating 
'getViewBinding()' is declared in unstable 'com.android.build.api.dsl.BuildFeatures' marked with @Incubating 

Любая подсказка о том, почему они помечены как предупреждения, тот же блок был в исходном файле build.gradle до преобразования в .kts


person JimmyFlash    schedule 06.08.2020    source источник
comment
См. stackoverflow.com/a/60174909/5288316, возможно, это поможет.   -  person Nicolas    schedule 10.08.2020
comment
Да, пробовал, все еще получая предупреждающее сообщение о buildFeatures   -  person JimmyFlash    schedule 11.08.2020


Ответы (1)


Не волнуйтесь, это просто дружеское предупреждение, что вы используете класс @Incubating. Давайте посмотрим на определение:

Указывает, что функция инкубируется. Это означает, что функция в настоящее время находится в стадии разработки и может измениться в любое время.

Так что не беспокойтесь, используйте его и, в конечном итоге, обновите в будущем. Вероятно, он будет помечен как стабильный в некоторых будущих версиях Android Studio и плагинов.

----- РЕДАКТИРОВАТЬ -----

Если вы хотите удалить это предупреждение, поставьте @Suppress("UnstableApiUsage") над строкой.

person Krystian Kaniowski    schedule 16.09.2020
comment
Это не нарушало сборки или что-то в этом роде, дело в том, что до того, как я переключился на KotlinDSL для своих файлов сборки, тот же блок кода был в моем build.gradle, и не было никаких предупреждений. раздражает, когда вы добавляете новую зависимость или обновляете код версии и т. д., и вы получаете одно и то же предупреждение при каждой фиксации - person JimmyFlash; 16.09.2020
comment
Если вы хотите избежать предупреждений, вы можете использовать viewBinding.isEnabled = true без buildFeature, но IDE будет кричать, что isEnable устарело. Для меня kotlin dsl лучше и приятнее, чем groovy, и более многофункциональный — вот так @Incubating, так что иногда да, это может раздражать, но в целом безопаснее и проще в использовании - person Krystian Kaniowski; 16.09.2020
comment
Я обновил свой ответ решением, как отключить это предупреждение. - person Krystian Kaniowski; 17.09.2020
comment
@JimmyFlash вам нужно дополнительное объяснение или более подробный ответ? - person Krystian Kaniowski; 21.09.2020
comment
Нет @Krystian Kaniowski, спасибо, но что касается отключения предупреждения, это не то, что я хочу делать, это не производственный код, я бы предпочел обновить до kotlin 1.4 и проверить, станет ли / когда это станет стабильным - person JimmyFlash; 26.09.2020