Код: Выделить всё
android.sdkDirectoryДля android.sdkDirectory я могу использовать $ANDROID_HOME:
Код: Выделить всё
val javadocs by tasks.registering(Javadoc::class) {
val sdkDirectory = System.getenv("ANDROID_HOME")
classpath = files(File("${sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"))
...
}
Код: Выделить всё
android.bootClasspath.forEach { classpath += fileTree(it) }
- Как использовать Provider getSdkDirectory() для получения sdkDirectory?
- Как использовать Provider getBootClasspath() для получения bootClasspath?
Возвращённый
Код: Выделить всё
Providerпоэтому его следует использовать как
Код: Выделить всё
org.gradle.api.TaskЭто android.sdkComponents.sdkDirectory и android.sdkComponents.bootClasspath.
Код: Выделить всё
val bootClasspath: Provider = android.sdkComponents.bootClasspath
val sdkDirectory: Provider = android.sdkComponents.sdkDirectory
Невозможно определить аргумент конструктора №6: отсутствует параметр типа Provider или нет службы типа Provider
>>.
Причина: android.newDsl=true; если установлено значение false, они существуют, но Android {} устарел.

Код: Выделить всё
android {}Что гласит:
Служба сборки, используемая для загрузки компонентов SDK.
Все операции сборки, требующие доступа к компонентам SDK, должны объявлять ее как входные данные.
Но до сих пор неясно, как это сделать. "объявить это как входные данные"?
Подробнее здесь: https://stackoverflow.com/questions/798 ... tclasspath
Мобильная версия