prelucrare adnotare cu Kapt și Gradle

KOTLIN!! … este ceea ce tot Google striga colectiv dezvoltatorilor Android la conferința I/O din acest an. Și asta e grozav — Kotlin este un limbaj plin featured cu suport IDE mare, care face scris Aplicații Android un heck de mult mai ușor și mai rapid. Kotlin este, totuși, încă foarte nou, cu versiunea 1.0 lansată doar în februarie a anului trecut. Și, ca și în cazul a ceva nou, nu totul funcționează.

un lucru care a fost dureros pentru un timp, dar începe să devină mai ușor, este utilizarea Kotlin cu procesoare de adnotare. Dar chiar și cu o mulțime de probleme funcționale elaborate, nu există o mulțime de documentație despre modul în care toate piesele merg împreună, așa că hai să mergem prin ea.

vom presupune că sunteți deja familiarizat cu subiectul procesoarelor de adnotare Java. Având în vedere acest lucru, există într-adevăr doar câteva diferențe.

Kapt este instrumentul de procesare a adnotărilor Kotlin și este într-o formă destul de bună în aceste zile. Dacă doriți să puteți face referire la codul generat de Kotlin, trebuie să utilizați kapt. Pentru a face acest lucru, pur și simplu includeți pluginul în versiunea dvs.fișier gradle cu linia:

apply plugin: 'kotlin-kapt'

și în cazul în care utilizați în mod normal cuvântul cheie adnotationprocessor pentru a specifica dependența procesorului dvs., utilizați în schimb cuvântul cheie kapt.

asta e. Ai terminat.

nu chiar

Ok, aproape ai terminat. Următoarea și cea mai interesantă întrebare este: cum depanați un procesor de adnotare care este compilat cu kapt?

dacă veniți din java, este posibil să fiți familiarizați cu depanarea unui procesor de adnotare rulând javac din linia de comandă și apoi atașând depanatorul la acesta. Dar kapt nu folosește javac pentru a compila, ci folosește kotlinc. Deci, instrucțiunile pentru depanarea unui procesor de adnotare în mod normal trebuie să fie foarte ușor modificate pentru kapt, în două moduri:

  1. comanda pe care vrem să o rulăm este acum:
./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"

notă: comanda de mai sus a fost editată din povestea originală din cauza unui comentariu la acest stackoverflow. Noua comandă vă permite să atașați depanatorul în orice moment, în loc să așteptați să înceapă pasul kapt și să vă forțați să încercați să îl „prindeți”. Rezumat-utilizați această nouă comandă, este mult mai bine.

2.Trebuie să așteptăm ca sarcina de compilare Kotlin să înceapă înainte de a atașa depanatorul. Deci, doriți să vă monitorizați construcția și să căutați sarcina:

:app:kaptDebugKotlin

și când îl vedeți, îndreptați-vă imediat către IDE și apăsați debug pe configurația de la distanță. Din experiența mea, dacă nu vă atașați la timp, sarcina va continua. Ai câteva secunde să-l dau seama, dar este un pic de o cursă pentru a obține toate de lucru.
EDIT: cele de mai sus ^ nu mai este cazul! Cu noua comandă gradle, puteți atașa depanatorul în orice moment și ar trebui să atingă punctele de întrerupere din clasa procesorului. Ura! Singura avertisment este că, uneori, depanatorul va atârna în alte puncte ale construcției, doar reporniți sau reatașați depanarea și veți fi bine să mergeți.

deci asta este cu adevărat. Acum Puteți construi, rula și depana procesorul de adnotare cu kapt. Fericit Kotlin-ing.

Lasă un răspuns

Adresa ta de email nu va fi publicată.