Flutter Gradle KTS: «Неразрешенная ссылка: flutterRoot» в settings.gradle.kts при добавлении локального репозитория maveAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter Gradle KTS: «Неразрешенная ссылка: flutterRoot» в settings.gradle.kts при добавлении локального репозитория mave

Сообщение Anonymous »

Большую часть дня я застрял над проблемой Gradle, пытаясь заставить работать отложенные компоненты Flutter, и мне действительно нужна была бы помощь.
После долгой борьбы со старой ошибкой «встраивания v1» я полностью воссоздал проект, который, наконец, исправил это. Сейчас я нахожусь на самом последнем шаге, но получаю ошибку компиляции в файле settings.gradle.kts.
Проблема заключается в ошибке Unresolved reference: flutterRoot, когда я пытаюсь добавить локальный репозиторий плагинов Flutter внутри блока pluginManagement. Похоже, переменная flutterRoot, которую я определяю в верхней части файла, просто выходит за рамки области видимости.
Вот конкретная ошибка:
Unresolved reference: flutterRoot
А вот мой полный файл settings.gradle.kts:
import java.util.Properties
import java.io.File

fun loadLocalProperties(rootDir: File): Properties {
val props = Properties()
val localPropsFile = File(rootDir, "local.properties")
if (localPropsFile.isFile) {
localPropsFile.inputStream().use { props.load(it) }
}
return props
}

val localProperties = loadLocalProperties(rootProject.projectDir)
val flutterRoot = localProperties.getProperty("flutter.sdk")
?: error("flutter.sdk not set in local.properties")

pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
// The error happens on the next line
maven(url = File(flutterRoot, "packages/flutter_tools/gradle/flutter_plugin_loader_repo").toURI())
}
}

plugins {
id("com.android.settings") version "8.3.0"
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
}

include(":app", ":modelComponent")
project(":modelComponent").projectDir = file("modelComponent")
I'm clearly missing something fundamental about how variable scope works here in the Gradle Kotlin DSL. What's the correct way to define flutterRoot so it's accessible inside the pluginManagement block?
Thanks in advance for any pointers!


Подробнее здесь: https://stackoverflow.com/questions/798 ... adle-kts-w
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»