¿Qué es la configuration de generateStubs en Kotlin?

¿Qué es generateStubs para Kotlin? Aquí está mi configuration en build.gradle .

No puedo encontrarlo en un documento público aquí: http://kotlinlang.org/docs/reference/kapt.html

 kapt { generateStubs = true } 

Si estoy usando Java y Kotlin(1.2) en mi proyecto, ¿todavía es necesario agregarlo?

EDITAR :

Si estoy usando Java y Kotlin (1.2) en mi proyecto, todavía es necesario agregar

No , con la versión 1.0.4 introduce una nueva implementación experimental de la API de procesamiento de anotación. Ahora no hay necesidad de configurar esto generateStubs en build.gradle .

Agregue lo siguiente a su build.gradle si desea habilitarlo:

 apply plugin: 'kotlin-kapt' 

También tendrá que eliminar la configuration de build.gradle de build.gradle pero como su pregunta es sobre los detalles de generateStubs build.gradle mi antigua respuesta tal como está.



Utilizar :

Usando kapt con: generatestubs = true , para usar bibliotecas como dagger 2 o dbflow, esto habilitará al comstackdor para generar classs de stub necesarias para la interoperabilidad entre Java y Kotlin . A less que generateStubs = true esté habilitado, " bootstrap " ( Un procesador de anotación personalizado, que se pasa a javac , carga los datos de anotación y llama a otros procesadores de anotación ) . Se requiere código de Java para hacer reference a las fonts generadas.

Nota: Los códigos generados siempre están en Java no en Kotlin .


Cuándo include:

La generación de stubs requiere relativamente mucho trabajo, ya que todas las declaraciones deben resolverse y, a veces, conocer los types de devolución requiere el análisis de la expresión (cuerpos de funciones o inicializadores de properties después del signo = ). Entonces, usar stubs en kapt ralentiza un poco tu build. Es por eso que los stubs están desactivados por defecto, y para habilitarlos debes escribir lo siguiente en tu file build.gradle :

 kapt { generateStubs = true } 

Cómo funciona esto:

Stubs, el comstackdor generó classs intermedias, permite que las fonts "generadas" sean referencedas desde Kotlin, de lo contrario el comstackdor no podrá hacer reference a las fonts faltantes.

La fuente generada se crea en "build/generated/source/kapt/main" , ya que está en " build ", normalmente excluida de las fonts del proyecto de IntelliJ, esta raíz de origen se marcará en el script de compilation en sí.

 sourceSets { main.java.srcDirs += [file("$buildDir/generated/source/kapt/main")] } 

Ejemplo:

Dagger2-example con el procesador de anotación Kotlin (1.1.50) soporta la construcción de Gradle

  • Android Kotlin .visibilidad
  • Configuración de oyentes de Android en Kotlin: uso del retorno en lambdas
  • ¿Cómo establecer la pestaña BottomNavigationView pnetworkingeterminada en Kotlin?
  • Usar Kotlin en un module de biblioteca sin usarlo en el module de la aplicación
  • kotlin-android null no se puede convertir a tipo no nulo kotlin.String
  • Parse 2D Array en Kotlin
  • El complemento de Kotlin falla Android Studio
  • Smartcasting hacia y desde el tipo de plataforma en kotlin