El object "val" de package de import de Kotlin falla desde el module de biblioteca de Android si está equipado con JaCoCo
He encontrado lo que creo que es un error de interacción entre Kotlin y la herramienta de cobertura JaCoCo.
En la biblioteca UsefulObjects.kt
:
- TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
- ¿Cuál es el tipo de palabra key?
- El module debe ser configurado
- Instant no se puede serializar al formatting apropiado incluso con jackson-datatype-jsr310
- ¿Por qué mi escena es nula?
package com.example.library object Turtles { val allTheWayDown = "Yertle" } val canYouHearTheDrums: Boolean get() = Turtles.allTheWayDown == "Yertle"
En la aplicación principal MainActivity.kt
:
package com.example.importobjectfails import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.util.Log import com.example.library.Turtles import com.example.library.canYouHearTheDrums class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Log.d("THIS", canYouHearTheDrums.toString()) Log.d("THAT", Turtles.allTheWayDown) } }
Con la cobertura de testing de JaCoCo desactivada, el código anterior se comstack y se ejecuta, escribiendo los posts esperados en la console de Android. Con JaCoCo habilitado, el código ni siquiera se comstack, por lo tanto falla:
e: ImportObjectFails/app/src/main/java/com/example/importobjectfails/MainActivity.kt: (7, 28): Unresolved reference: canYouHearTheDrums e: ImportObjectFails/app/src/main/java/com/example/importobjectfails/MainActivity.kt: (19, 23): Unresolved reference: canYouHearTheDrums
El object Turtles
declarado se importa sin problemas, pero no se puede encontrar el object val
-declarado a nivel de package.
Esto parece un error de buena fe.
Creé un proyecto de muestra para ilustrar el punto: https://github.com/gefilte/KotlinImportObjectFails
Este proyecto no podrá comstackrse como confirmado, pero si elimina el testCoverageEnabled true
library/build.gradle
file library/build.gradle
, se comstackrá y ejecutará normalmente.
- mover una vista dependiendo de la dirección del deslizamiento
- Crea una list de otro
- No se puede actualizar el valor del parámetro del método Kotlin
- Incluye el logging en el operador de Elvis?
- Cómo lanzar Cadena en Int y Largo?
- En Kotlin Lenguaje de progtwigción importancia de varargs en términos de usos
- Cómo agregar contenidos de una colección a una nueva colección
- ¿Por qué es imposible utilizar las references de methods para las funciones `suspender` en Kotlin?
- locationManager.getBestProvider devuelve nulo para API 15 (API <23)
- ¿Por qué agregar una Vista a mi layout cambia el ancho de todo el layout?