Невозможно настроить Kapt для кинжала в мультиплатформе KotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Невозможно настроить Kapt для кинжала в мультиплатформе Kotlin

Сообщение Anonymous »

Я пытаюсь настроить Dagger в многоплатформенном модуле Kotlin для Android только в качестве POC для миграции проекта.
Поэтому мне нужно было настроить kapt и следовать инструкциям Kmp в Kapt, в результате чего получился следующий файл build.gradle:

Код: Выделить всё

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidKotlinMultiplatformLibrary)
alias(libs.plugins.kapt)
}

kotlin {
androidLibrary {
namespace = com.poc.shared"
compileSdk = 36
minSdk = 24

withJava()
withHostTestBuilder {
}

withDeviceTestBuilder {
sourceSetTreeName = "test"
}.configure {
instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}

sourceSets {
commonMain {
dependencies {
implementation(libs.kotlin.stdlib)
}
}

commonTest {
dependencies {
implementation(libs.kotlin.test)
}
}

androidMain {
dependencies {
implementation(libs.dagger)
}
}
}
}

dependencies {
kapt(libs.dagger.compiler)
}

Код: Выделить всё

Versions off plugins:
agp = "8.13.0"
composeMultiplatform = "1.9.0"
kotlin = "2.2.20"
kotlinStdlib = "2.2.20"
dagger = "2.57.2"
Когда я пытаюсь создать приложение, я сталкиваюсь со следующей ошибкой:

Код: Выделить всё

Execution failed for task ':shared:kaptAndroidMain'.
> Cannot query the value of this provider because it has no value available.
Из-за ошибки я сейчас не понимаю, что происходит.
Я пробовал использовать kapt в других контекстах, например. установка его в исходном коде androidMain:

Код: Выделить всё

 androidMain {
dependencies {
implementation(libs.dagger)

configurations.getByName("kapt").dependencies.add(
DefaultExternalModuleDependency(
"com.google.dagger",
"dagger-compiler",
"2.57.2"
)
)
}
}
но безрезультатно.
Мой вопрос: как мне решить эти проблемы и правильно настроить Dagger для KMP Android?

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

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

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

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

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

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