KOTLIN!! … er, hvad alle Google kollektivt råbte på Android-udviklere på dette års I/O-konference. Og det er fantastisk — Kotlin er et fuldt udstyret sprog med god IDE-support, der gør skrivning af Android-apps meget lettere og hurtigere. Kotlin er dog stadig meget ny, med version 1.0 udgivet i februar sidste år. Og som med alt det nye, ikke alt fungerer helt.
en ting, der har været smertefuldt i et stykke tid, men begynder at blive lettere, bruger Kotlin med annotationsprocessorer. Men selv med mange af de funktionelle problemer, der er udarbejdet, er der ikke masser af dokumentation om, hvordan alle brikkerne går sammen, så lad os gå igennem det.
vi antager, at du allerede er fortrolig med emnet Java-annotationsprocessorer. Med det i tankerne er der virkelig kun få forskelle.
Kapt er Kotlin Annotationsbehandlingsværktøjet, og det er i temmelig god form i disse dage. Hvis du vil kunne henvise til genereret kode fra Kotlin, skal du bruge kapt. For at gøre det skal du blot inkludere plugin i din build.gradle fil med linjen:
apply plugin: 'kotlin-kapt'
og hvor du normalt bruger kommentarprocessor-nøgleordet til at specificere din processorafhængighed, skal du i stedet bruge kapt-nøgleordet.
det er det. Du er færdig.
ikke helt
Ok, du er næsten færdig. Det næste og mest interessante spørgsmål er, hvordan fejler du en annotationsprocessor, der er kompileret med kapt?
hvis du kommer fra java, kan du være bekendt med fejlfinding af en annotationsprocessor ved at køre javac fra kommandolinjen og derefter vedhæfte debuggeren til den. Men kapt bruger ikke javac til at kompilere, det bruger kotlinc. Så instruktionerne til fejlfinding af en annotationsprocessor på den normale måde skal ændres meget lidt for kapt på to måder:
- den kommando, vi vil køre, er nu:
./gradlew :app:clean :app:compileDebugKotlin --no-daemon -Dorg.gradle.debug=true -Dkotlin.compiler.execution.strategy="in-process" -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=5005\,server=y\,suspend=n"
Bemærk: ovenstående kommando er redigeret fra den oprindelige historie på grund af en kommentar til denne stackoverløb. Den nye kommando giver dig mulighed for at vedhæfte debuggeren til enhver tid i stedet for at vente på, at kapt-trinnet begynder og tvinger dig til at prøve at “fange” det. Sammendrag-brug denne nye kommando, det er langt bedre.
2.Vi er nødt til at vente på, at Kotlin-kompileringsopgaven begynder, før vi vedhæfter debuggeren. Så du vil overvåge din opbygning og kigge efter opgaven:
:app:kaptDebugKotlin
og når du ser det, hovedet straks over til din IDE og ramte debug på din fjernbetjening konfiguration. Efter min erfaring, hvis du ikke vedhæfter i tide, vil opgaven bare fortsætte. Du har et par sekunder til at finde ud af det, men det er lidt af et løb for at få det hele til at fungere.
Rediger: ovenstående ^ er ikke længere tilfældet! Med den nye gradle-kommando kan du til enhver tid vedhæfte debuggeren, og den skal ramme breakpoints i din processorklasse. Yay! Den eneste advarsel er, at debuggeren nogle gange vil hænge på andre punkter i bygningen, bare genstarte eller genmontere debugging, og du vil være god til at gå.
så det er virkelig det. Nu Kan du bygge, køre og fejlsøge din annotationsprocessor med kapt. Glad Kotlin-ing.