Procesamiento de annotations con el estudio Android Kapt

Estoy tratando de usar kapt para usar mi procesador de anotación. Pero me encontré con algunos problemas.

El procesador de anotación está conectado de esta manera:

kapt files('libs/processor.jar') provided files('libs/processor.jar') 

1) Estoy usando JavaPoet para la generación de código. Y salvar mi class de esta manera

  JavaFile javaFile = JavaFile.builder(PACKAGE, typeSpec).build(); javaFile.writeTo(processingEnv.getFiler()); 

Pero siempre lo guarda en build \ generated \ source \ kapt \ release, y nunca depura la carpeta independientemente de la variante de compilation.

enter image description here

2) El segundo problema es que el file generado a veces no se actualiza, hasta que presiono Build-> Rebuild

El kotlin-kapt seleccionará automáticamente el directory de salida correcto en function de la variante de biblioteca / aplicación incorporada. Al crear un proyecto con un único module com.android.application , Android Studio utilizará la variante de la aplicación seleccionada en el menu "Variantes de compilation".

Variante de compilación ventana

Esto no es cierto para los modules de biblioteca, que, si no están configurados de otra manera, publicarán la variante de compilation de release , incluso cuando select "debugging" para esos modules dentro del menu "Variantes de compilation".

Para poner en marcha y ejecutar los modules de la biblioteca, tiene tres opciones:

  1. En la window "Variantes de compilation", select "liberar" para el module de la biblioteca que contiene su código anotado. Esto le indicará a Android Studio que recoja la salida de kapt dentro de generated/sources/kapt/release/ .

  2. En los modules de su biblioteca, build.gradle establece defaultPublishConfig para debug (y mantiene la variante seleccionada en la debugging también). Esto le indicará al complemento Android Gradle que compile la variante de la biblioteca de debug lugar de la release pnetworkingeterminada.

     android { defaultPublishConfig "debug" } 
  3. También puede elegir publicar las variantes de compilation de debug y release al mismo time, estableciendo publishNonDefaults en true . En el module de su aplicación principal, puede hacer reference al module de la biblioteca dos veces, para las configuraciones debugCompile y releaseCompile . Sin embargo, tenga en count que esto siempre generará ambos types, aunque solo necesite fonts de debugging en el momento de la creación, prácticamente duplicando los times de compilation.

  • Usando un socket para un protocolo personalizado sobre tcp
  • Kotlin, problema de function de alto order
  • Cualquier mejora de código en agregar / replace fragment
  • RxJava: onBackpressureBlock () comportamiento extraño
  • Prueba mónada por kotlin
  • Divida la list en partes
  • No se puede importar un package generado swig
  • Kotlin carga la class externa?
  • ¿Por qué para el loop con comstackciones de tres puntos?
  • Kotlin con stack RxKotlinFX da un error de class de acceso
  • firebase db: models con properties delegadas de Kotlin