Каталог версий Gradle (libs.versions.toml) не разрешается в многоплатформенном проекте Kotlin Android после обновления IAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Каталог версий Gradle (libs.versions.toml) не разрешается в многоплатформенном проекте Kotlin Android после обновления I

Сообщение Anonymous »

Я работаю над мультиплатформенным проектом Kotlin с отдельными модулями android-ui и Desktop-ui. После обновления до Otter 2025.1.7 я заметил две проблемы:
Мой файл libs.versions.toml перестал разрешать псевдонимы плагинов и ссылки на библиотеки — хотя структура действительна и ранее работала.
Представление Android исчезло из IDE, и я больше не могу переключать версии AGP (например, на 8.13.0) через пользовательский интерфейс.
Я уже пробовал:
Переустановка IDE и удаление всех ссылок Gradle 9
Использование явных объявлений id("...") версии "..." вместо псевдонимов
Очистка кешей .gradle и .idea
Проверка присутствия плагина Management в settings.gradle.kts
Мой TOML включает записи нравится:
[plugins]
ksp = { id = "com.google.devtools.ksp", version = "2.3.0" }

[libraries]
koin-compiler = { module = "io.insert-koin:koin-ksp-compiler", version = "1.3.0" }

И я применяю плагин android-ui/build.gradle.kts с помощью:
plugins {
alias(libs.plugins.ksp)
}

Но libs.koin.compiler и libs.plugins.ksp не удается разрешить, и
add("kspAndroid", libs.koin.compiler)

выдает неразрешенные ошибки ссылок.
Известна ли это проблема с Otter или AGP 8.4.1+? Есть ли способ восстановить или повторно включить разрешение libs.versions.toml в этой настройке? Я пробовал:
Установить оболочку Gradle:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

Жесткое кодирование плагинов в android-ui/build.gradle.kts:
plugins {
id("com.android.application") version "8.4.1"
kotlin("multiplatform") version "2.1.21"
id("org.jetbrains.kotlin.plugin.compose") version "2.1.21"
id("com.google.devtools.ksp") version "2.3.0"

}

Попытка добавить это в settings.gradle.kts, но она не удалась, поскольку from() можно использовать только один раз:
versionCatalogs {
create("libs") {
from(files("gradle/libs.versions.toml"))
}
}

Принимаются любые идеи, особенно если вы видели такое поведение после обновлений IDE или Gradle.
Приложение:
settings.gradle.kts
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

pluginManagement {
repositories {
google()
gradlePluginPortal()
mavenCentral()
maven("https://plugins.gradle.org/m2/")
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}
}

dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
gradlePluginPortal()
mavenLocal()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven("https://repo.itextsupport.com/releases")
maven("https://repo.clojars.org/")
maven("https://mvnrepository.com/artifact/app. ... -uuid-core")
}
/*
versionCatalogs {
create("libs") {
from(files("gradle/libs.versions.toml"))
}
}
*/
}

buildCache {
local {
isEnabled = true
}
}

rootProject.name = "sound2text"
include(":android-ui")
include(":core")
include(":desktop-ui")

libs.versions.toml
# Core Toolchains
agp = "8.4.1"
kotlin = "2.1.21"
ksp = "2.3.0"

# Compose
compose-plugin = "1.9.2"
compose-bom = "2025.10.01"
compose-compiler = "1.5.10"
activity-compose = "1.9.3"

# Koin
koin = "3.5.6"
koin-annotations = "1.4.0"
koin-compiler-version = "2.3.0"

[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
androidApplication = { id = "com.android.application", version.ref = "agp" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" }

[libraries]
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" }
activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activity-compose" }
core-ktx = { module = "androidx.core:core-ktx", version = "1.13.1" }

koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
koin-annotations = { module = "io.insert-koin:koin-annotations", version.ref = "koin-annotations" }
koin-compiler = { module = "io.insert-koin:koin-ksp-compiler", version.ref = "koin-compiler-version" }

kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.8.0" }
junit = { module = "junit:junit", version = "4.13.2" }

[bundles]
compose-android = ["compose-bom", "activity-compose"]
koin-android = ["koin-core", "koin-android", "koin-androidx-compose"]
koin-test = ["koin-compiler"]

gradle.properties
# This file was generated by the Gradle 'init' task.
# https://docs.gradle.org/current/usergui ... properties

org.gradle.configuration-cache=false
org.gradle.parallel=true
org.gradle.caching=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx2g -XX:+UseParallelGC

gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

android-ui/build.gradle.kts
val libs = extensions.getByName("libs") as VersionCatalog

plugins {
id("com.android.application") version "8.4.1"
kotlin("multiplatform") version "2.1.21"
id("org.jetbrains.kotlin.plugin.compose") version "2.1.21"
id("com.google.devtools.ksp") version "2.3.0"
// alias(libs.plugins.ksp)
}

dependencies {
implementation(platform(libs.compose.bom))
// ""(libs.koin.compiler) — unresolved
// add("kspAndroid") — unresolved
// configurations.named("kspAndroid").configure {
// it.dependencies.add(libs.koin.compiler.get())
// }
}

android {
namespace = "com.sildeag.sound2text"
compileSdk = 35

defaultConfig {
applicationId = "com.sildeag.sound2text"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

buildFeatures {
compose = true
}

composeOptions {
kotlinCompilerExtensionVersion = "1.5.10"
}
}

kotlin {
androidTarget()

sourceSets {
val commonMain by getting {
dependencies {
implementation(libs.kotlinx.coroutines.core)
implementation(libs.koin.core)
}
}
val androidMain by getting {
dependencies {
implementation(libs.bundles.compose.android)
implementation(libs.core.ktx)
implementation(libs.activity.compose)
implementation(libs.bundles.koin.android)
// ksp(libs.koin.compiler)
}
}
val androidTest by getting {
dependencies {
implementation(libs.bundles.koin.test)
implementation(libs.junit)
}
}
}
}


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

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

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

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

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

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