Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

407
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda