Я пытаюсь построить проект Android на сервере TeamCity. Однако при запуске команды clean build
я столкнулся с проблемой. Я получаю следующую ошибку в журнале сборки:
Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
java.lang.IllegalStateException: buildToolsVersion is not specified.
at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:558)
at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy14.afterEvaluate(Unknown Source)
Я считаю, что правильно указал buildToolsVersion
в файле Gradle, а также у меня установлена версия инструментов сборки, которые я указал на сервере сборки. Фрагменты моих файлов Gradle приведены на всякий случай.
Project build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
}
}
allprojects {
repositories {
jcenter()
}
}
Модуль build.gradle
apply plugin: 'com.android.application'
if (rootProject.hasProperty("teamcity")) {
version = teamcity["build.number"]
} else {
version = '2.6.5.63'
}
def calculatedVersionCode = Integer.parseInt(version.tokenize('.')[1]) * 100000 + Integer.parseInt(version.tokenize('.')[2]) * 1000 + Integer.parseInt(version.tokenize('.')[3])
android {
compileSdkVersion 21
buildToolsVersion '25.0.0'
...
Надеюсь, хватит информации, заранее спасибо, это сводит меня с ума!