#android #android-gradle-plugin #android-gradle-3.4.0
#Android #android-gradle-plugin #android-gradle-3.4.0
Вопрос:
Я обновил свой build.gradle
файл до плагина Android gradle 3.4.0
с помощью gradle 5.11
.
Мой build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'checkstyle'
android {
compileSdkVersion 28
buildToolsVersion buildVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "myapp"
minSdkVersion 21
targetSdkVersion 28
versionName "5.20.0"
versionCode 520
}
dataBinding {
enabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation "com.android.support:support-v4:$supportLibVersion"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
task checkstyle(type: Checkstyle) {
source 'src/'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
reports {
xml {
destination "build/outputs/reports/checkstyle-results.xml"
}
}
group = JavaBasePlugin.VERIFICATION_GROUP
description = 'Performs checkstyle verification on the code.'
}
task checkstyleReport(dependsOn: 'checkstyle', group: JavaBasePlugin.VERIFICATION_GROUP) {
if (file("build/outputs/reports/checkstyle-results.xml").exists()) {
ant.xslt(in: "build/outputs/reports/checkstyle-results.xml",
style: "./config/checkstyle/checkstyle.xsl",
out: "build/outputs/reports/checkstyle-results.html"
)
}
}
При синхронизации я получаю следующее сообщение об ошибке:
СБОЙ: сбой сборки с исключением.
- Где: Файл сборки ‘/Users/cs/Development/project/app/build.gradle’
- Что пошло не так: возникла проблема при оценке проекта ‘: app’.
Не удалось найти метод destination() для аргументов [build/outputs/reports/checkstyle-results.xml ] в XML-отчете типа org.gradle.api.reporting.internal.Сгенерированный tasksinglefilereport.
- Попробуйте: запустите с параметром —stacktrace, чтобы получить трассировку стека. Запустите с параметром —info или —debug, чтобы получить больше выходных данных журнала. Запустите команду —scan, чтобы получить полную информацию.
- Получить дополнительную помощь можно по адресу https://help.gradle.org
ОШИБКА СБОРКИ за 1 секунду: метод Gradle DSL не найден: ‘destination ()’ Возможные причины: Проект «project» может использовать версию плагина Android Gradle, которая не содержит метода (например, «testCompile» был добавлен в 1.1.0). Обновите плагин до версии 3.4.0 и синхронизируйте проект
Проект «project» может использовать версию Gradle, которая не содержит метода. Откройте файл-оболочку Gradle
В файле сборки может отсутствовать плагин Gradle. Применить плагин Gradle
Ошибка указывает на эти строки:
reports {
xml {
destination "build/outputs/reports/checkstyle-results.xml"
}
}
destination
Был ли изменен синтаксис для gradle?
Ответ №1:
Решение
reports {
xml {
destination file("build/outputs/reports/checkstyle-results.xml")
}
}
Метод, используемый для получения объекта, но теперь требует тип файла в качестве параметра — отсюда и ошибка параметра.
Таким образом, передача файла вместо этого решает проблему.
Вы можете увидеть ожидаемые типы параметров здесь: