After upgrading to Gradle 4.x, I get the warning
The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.
in one of my projects. I don't see anything called bootClasspath
or similar in my build.gradle. What does this warning mean?
the warning only appears in the commons subproject, not in core.
commons/build.gradle:
apply plugin: 'com.android.library'
ext {
PUBLISH_GROUP_ID = 'com.afollestad.material-dialogs'
PUBLISH_ARTIFACT_ID = 'commons'
PUBLISH_VERSION = '0.9.2.3'
BUILD_TOOLS = "26.0.3"
TARGET_SDK = 25
}
android {
compileSdkVersion TARGET_SDK
buildToolsVersion BUILD_TOOLS
defaultConfig {
minSdkVersion 16
targetSdkVersion TARGET_SDK
versionCode 1
versionName PUBLISH_VERSION
}
lintOptions {
checkReleaseBuilds false
}
}
dependencies {
implementation project(':core')
}
// Changes to this block must be applied in core/build.gradle and commons/build.gradle
task("javadoc", type: Javadoc) {
description "Generates Javadoc API documentation for the main source code."
source = android.sourceSets.main.java.srcDirs
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath += files(ext.androidJar)
exclude "**/BuildConfig.java"
exclude "**/R.java"
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.links("http://d.android.com/reference/");
}
core/build.gradle:
apply plugin: 'com.android.library'
ext {
PUBLISH_GROUP_ID = 'com.afollestad.material-dialogs'
PUBLISH_ARTIFACT_ID = 'core'
PUBLISH_VERSION = '0.9.2.3'
SUPPORT_LIBRARY_VERSION = '25.4.0'
BUILD_TOOLS = "26.0.3"
TARGET_SDK = 25
}
android {
compileSdkVersion TARGET_SDK
buildToolsVersion BUILD_TOOLS
defaultConfig {
minSdkVersion 16
targetSdkVersion TARGET_SDK
versionCode 1
versionName PUBLISH_VERSION
consumerProguardFiles 'progress-proguard.txt'
}
lintOptions {
checkReleaseBuilds false
}
}
dependencies {
api "com.android.support:support-v13:$SUPPORT_LIBRARY_VERSION"
api "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
api "com.android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
api "com.android.support:support-annotations:$SUPPORT_LIBRARY_VERSION"
implementation "me.zhanghai.android.materialprogressbar:library:1.4.1"
}
// Changes to this block must be applied in core/build.gradle and commons/build.gradle
task("javadoc", type: Javadoc) {
description "Generates Javadoc API documentation for the main source code."
source = android.sourceSets.main.java.srcDirs
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath += files(ext.androidJar)
exclude "**/BuildConfig.java"
exclude "**/R.java"
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.links("http://d.android.com/reference/");
}
My Gradle is using OpenJDK 8 from /usr/lib/jvm/java-8-openjdk-amd64/jre
on Ubuntu (see by adding println System.getProperty("java.home")
in build.gradle. No Android Studio involved.
I can trigger the the warning by explicitly setting sourceCompatibility
and targetCompatibility
to 1.7 (the default value). By changing the Java version to
android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
the warning disappears.
The reason why the warning is shown for only one project is that it is not repeated. commons
is configured before core
because of alphanumerical ordering. When I set sourceCompatibility
and targetCompatibility
to 1.8 for commons
, the warning moves to core
.
Setting sourceCompatibility
and targetCompatibility
to 1.8 for all projects removes the warning entirely. If this is what you want for your project and why Gradle 4 cannot be used warning-free with 1.7 are two separate questions.