Ich bin neu in der Verwendung von Kotlin und versuche, es mit Dagger2 einzurichten. Ich habe einige wenige Beispiele gesehen, aber keines davon scheint für mich zu funktionieren.
Ich bekomme das immer wieder
Fehler: Ausführung für Aufgabe „:app:kaptDebugKotlin“ fehlgeschlagen.
Interner Compilerfehler. Siehe Protokoll für weitere Details
Ich habe mein build.gradle (Modul: app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.exampleapp"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
kapt {
generateStubs = true
}
dexOptions {
javaMaxHeapSize "2048M"
}
}
ext {
supportLibVer="25.0.0"
daggerVer="2.8"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Support lib
compile "com.android.support:appcompat-v7:${supportLibVer}"
kapt "com.google.dagger:dagger-compiler:${daggerVer}"
compile "com.google.dagger:dagger:${daggerVer}"
provided "javax.annotation:jsr250-api:${javaxVer}"
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
repositories {
mavenCentral()
}
Führen Sie Ihre Anwendung mit aus ./gradlew clean build
Befehl, um zu sehen, was mit Ihrem Code genau falsch ist. Fügen Sie es einfach in das Terminal in Android Studio ein.
Wenn Sie die Room-Datenbank verwenden und einen KAPT-Fehler erhalten, überprüfen Sie einfach Ihre
- Datenbankdeklarationen
- Deklarationen von Datenzugriffsobjekten
- Datenklassenfelder
Es handelt sich um ein Problem, das durch unsachgemäße Verwendung von Anmerkungen von Room entsteht. Weitere Informationen finden Sie in Ihren Build-Protokollen.


jan4co
Ich stand eine Weile vor diesem Problem. Was mir sehr geholfen hat, war das Lesen des Build-Tabs, weil es die Gründe dafür angab, warum die Bibliothek fehlschlug.
Hier ist die Registerkarte 
Ich hatte viele Probleme,
1. Ich habe die neue Entität, die ich erstellt habe, nicht zur @Database-Anmerkung hinzugefügt
2. Ich habe die @Dao-Anmerkung nicht in meiner Benutzeroberfläche hinzugefügt
3. Ich habe einige Variablennamen nicht aktualisiert, die in eine @Query-Anmerkung geschrieben wurden
Also musste ich Problem für Problem töten, schließlich konnte es später laufen. Außerdem habe ich mein Projekt bereinigt und neu erstellt, um sicherzustellen, dass der Code nicht hängen bleibt. Schließen und öffnen Sie auch Android Studio.
Darüber hinaus können Sie diese Antwort überprüfen, um den Fehler beim Aktivieren weiterer Anmeldefehler zu finden

Jatin Sachdeva
Ich stand eine Weile vor diesem Problem. Mein Fehler war die Verwendung des privaten Zugriffsbezeichners mit dem @Inject-Feld.
Wenn Sie Dagger verwenden, suchen Sie nach privaten @Inject-Feldern oder fügen Sie dies als Befehlszeilenoptionen hinzu, um die genaue Ursache zu erfahren:
--stacktrace --info --scan
Gehen Sie auf dem Mac zu Android Studio > Einstellungen > Build, Ausführung, Bereitstellung > Compiler
Gehen Sie unter Windows zu Datei > Einstellungen > Build, Ausführung, Bereitstellung > Compiler
In meinem Fall habe ich vergessen, die Raum-DB-Entitäten zur Datenbank hinzuzufügen
@Database(version = 1,
entities = [DummyEntity::class]
)

miel3k
Das Problem kann mit Room und Kotlin 1.4.10 verbunden sein.
Versuche zu ändern android.arch.persistence
zu androidx.room
für Raumabhängigkeiten:
Verwenden
kapt "androidx.room:room-compiler:$roomVersion"
anstatt
kapt "android.arch.persistence.room:compiler:$roomVersion"
Wenn Sie Hilt and Field Injection verwenden, entfernen Sie Private aus Field Injected Object. Dies hat bei mir funktioniert
@Inject
private lateinit var helper: Helper
zu
@Inject
lateinit var helper: Helper
9948100cookie-checkFehler: Ausführung für Aufgabe „:app:kaptDebugKotlin“ fehlgeschlagenyes
Wechseln Sie zur Gradle-Konsole und sehen Sie sich die Protokollausgabe an. Die IDE zeigt Ihnen nur, dass beim Kompilieren ein Fehler aufgetreten ist, aber Sie müssen sich die Ausgabe ansehen, um den Fehler zu sehen.
– David Medenjak
20. Oktober 2017 um 19:53 Uhr
Konvertieren Sie alle zugehörigen Klassen in Kotlin
– Shahab Salami
14. November 2020 um 16:47 Uhr