Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

410
Vistas
Jacoco falla en Gradle 7.0.2 y Kotlin 1.5.10

Hoy actualicé las dependencias de Gradle y Kotlin en Android Studio.

Las nuevas versiones son estas:

 kotlin_version = "1.5.10" ... jacoco { toolVersion = "0.8.6" } ... distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

La tarea de informe de cobertura de prueba falla con el siguiente error:

 2021-05-27T16:57:49.150+0200 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':consumerkit:testDebugUnitTestCoverage'. 2021-05-27T16:57:49.304+0200 [DEBUG] [org.codehaus.groovy.vmplugin.VMPluginFactory] Trying to create VM plugin `org.codehaus.groovy.vmplugin.v9.Java9` by checking `java.lang.Module`, but failed: java.lang.ClassNotFoundException: java.lang.Module at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.codehaus.groovy.vmplugin.VMPluginFactory.lambda$createPlugin$0(VMPluginFactory.java:61) at java.security.AccessController.doPrivileged(Native Method)
over 4 years ago · Hanz Gallego
4 Respuestas
Responde la pregunta

0

ya tenia el

 jacoco { toolVersion = "0.8.7" }

configurado pero no estaba funcionando de todos modos, lo que solucionó el problema fue seguir este comentario aquí

  1. En su módulo build.gradle , vuelva a cambiar a:
 android { //.... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } }

no se preocupe, no romperá nada si aún no estaba usando las características del lenguaje Java 11, AGP 7 sigue siendo compatible con JDK 8 como objetivo.

  1. Luego debe obligar a AGP a usar la versión 0.8.7 y no la predeterminada 0.8.3. En su bloque allprojects en el archivo root build.gradle , agregue esto:
 allprojects { //... other things // workaround to fix an auto-import of a lower Jacoco version resolutionStrategy { eachDependency { details -> if ('org.jacoco' == details.requested.group) { details.useVersion "0.8.7" } } } }

y ahora debería funcionar usando:

 AGP 7.0.X Kotlin 1.5.X JDK 11 (embedded with AS)
over 4 years ago · Hanz Gallego Denunciar

0

Para Kotlin 1.5 , debe usar JaCoCo 0.8.7 en lugar de 0.8.6 ; consulte https://github.com/jacoco/jacoco/pull/1164 y el registro de cambios completo en https://www.jacoco.org/jacoco/trunk /doc/cambios.html

Fragmento de ejemplo:

 // build.gradle or build.gradle.kts jacoco { toolVersion = "0.8.7" }
over 4 years ago · Hanz Gallego Denunciar

0

simplemente haciendo

 jacoco { toolVersion = "0.8.7" }

no fue suficiente para mí. También tuve que anular la versión que estaba usando Android para que la dependencia androidJacocoAnt también use 0.8.7. ( ./gradlew app:dependencies ) Simplemente agregue esto a su gradle también

 android.jacoco.version = "0.8.7"
over 4 years ago · Hanz Gallego Denunciar

0

Es un hilo bastante antiguo, pero estas soluciones no resolvieron mis problemas por completo en el proyecto de Android (en realidad está escrito en Java, no en Kotlin), por lo que agregaré mis soluciones aquí. Tal vez alguien lo encuentre útil.

Excepto por actualizar jacoco toolVersion a 0.8.7 , también tuve que actualizar los datos de ejecución en mi configuración de jacoco de la siguiente manera:

 project.afterEvaluate { tasks.create(name: "${unitTestTask}Coverage", type: JacocoReport, dependsOn: [ "$unitTestTask", ":sdk:testDebugUnitTest", ":sdk:connectedCheck" ]) { /* all jacoco custom configuration goes here... */ executionData(fileTree(dir: "$buildDir", includes: [ "jacoco/testDebugUnitTest.exec", "outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec", "outputs/code_coverage/debugAndroidTest/connected/*coverage.ec" ])) } }

en esta configuración tuve que agregar la siguiente línea:

 "outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec"

que no estaba allí antes porque el archivo con el informe generado utilizado por el sonar se generó en la nueva ubicación. El informe se genera con la tarea de testDebugUnitTestCoverage . Después de todo eso, puedo generar un informe de cobertura de prueba que incluye pruebas de Android conectadas/instrumentadas y pruebas unitarias regulares en Java a través de sonar.

over 4 years ago · Hanz Gallego Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda