Я изменил версию Gradle на 5.1.1 в своем проекте Android Studio, и у меня получилось ниже трассировки стека.
Ошибка:
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method destination() for arguments [...\app\build/reports/jacoco/betaDebug/jacoco.xml] on Report xml of type org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport.
Я знаю, что в Gradle 5.x setDestination (объектный файл) был удален, но я не могу найти ошибку, потому что я не использую setDestination (объектный файл) в моем проекте. Я думаю, что проблема в файле setDestination (объектный файл). Пожалуйста, помогите мне. Спасибо
Это мой setDestination (объектный файл):
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.2.201409121644"
}
project.afterEvaluate {
// Grab all build types and product flavors
def buildTypes = android.buildTypes.collect { type ->
type.name
}
def productFlavors = android.productFlavors.collect { flavor ->
flavor.name
}
// When no product flavors defined, use empty
if (!productFlavors) productFlavors.add('')
productFlavors.each { productFlavorName ->
buildTypes.each { buildTypeName ->
def sourceName, sourcePath
if (!productFlavorName) {
sourceName = sourcePath = "${buildTypeName}"
} else {
sourceName = "${productFlavorName}${buildTypeName.capitalize()}"
sourcePath = "${productFlavorName}/${buildTypeName}"
}
def testTaskName = "test${sourceName.capitalize()}UnitTest"
// Create coverage task of form 'testFlavorTypeCoverage' depending on 'testFlavorTypeUnitTest'
task "${testTaskName}Coverage"(type: JacocoReport, dependsOn: "$testTaskName") {
group = "Reporting"
description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build."
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/classes/${sourcePath}",
excludes: [
'**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/activity/**',
'**/service/**',
'**/repository/**',
'**/application/**',
'**/utils/**',
'**/*Contract.*',
'**/*FeedEntry.*',
'**/*Prototype.*',
'**/*Prototype.*',
'**/htmltextview/**',
'**/iab/**',
'**/billing/**'
]
)
def coverageSourceDirs = [
"src/main/java/com/habitcoach/android/model",
"src/$productFlavorName/java/com/habitcoach/android/model",
"src/$buildTypeName/java/com/habitcoach/android/model"
]
additionalSourceDirs = files(coverageSourceDirs)
sourceDirectories = files(coverageSourceDirs)
executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
reports {
xml.enabled = true
html.enabled = true
}
}
}
}
}