61

Yesterday I updated Android Studio Version and Kotlin plugin version.

Android Studio Version: 3.1.2

Kotlin Version: 1.2.41

When I create an Android project using this configuration, I get Kotlin Compiler warning saying

w: /home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6f582de73d9cdc6c56ef4e23604a0ee55768/kotlin-stdlib-jre7-1.2.41.jar: kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 instead

Changed as per suggestion, then I am getting following error

Unexpected inputs: ImmutableJarInput{name=org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.41, file=/home/ganeshtikone/Workspace/May-2018/fhs/app/build/intermediates/transforms/desugar/stage/debug/45.jar, contentTypes=CLASSES, scopes=EXTERNAL_LIBRARIES, status=REMOVED}

0

6 Answers 6

98

Go to Tools > Kotlin > Configure Kotlin Plugin Updates and check for updates then in your app gradle file replace jre with jdk

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

Update

Newer version is jdk8

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Sign up to request clarification or add additional context in comments.

2 Comments

Why not org.jetbrains.kotlin:kotlin-stdlib-jdk8?
@IgorGanapolsky Would you like to answer your comment. Thanks in Advance
39

Important Update

Must check JDK version before setting config

Kotlin gradle config page has detailed information about this.

First of all check your kotlin version in gradle file.

if (kotlin_version == '1.2.x' ) (Use jdk NOT jre)

First check your jdk version in File > Project Structure.

sc

Or check in build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

if (jdk_version == 1.8)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

if (jdk_version == 1.7)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

if (jdk_version is < 1.7)

implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

else if(NO jdk version is set in Project Structure)

if(Android_Studio_Version < 2.2.1){
   your_jdk_version = 1.7;
}
else {
   your_jdk_version = 1.8;
}

Because Android Studio is bundled with jdk 1.8 since 2.2.1 version.

2. else if ( kotlin_version == '1.1.x') (Use jre NOT jdk)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // or jre8

Update Kotlin Version?

You can update Kotlin version from Tools > Kotlin > Configure Kotlin Updates

4 Comments

I am using jdk8 and latest kotlin version ie. 1.3.11 but still the warning shows .. jre7 is deprecated.. P.S my android studio version is 3.3.0
@SantanuSur I am not sure. Perhaps, check if any of your dependency is using that version?
Yes I am using some open source libs..might be one of'em
@SantanuSur You can check if there is some update from your libraries.
9

Something is transitively importing those libraries. Run Gradle task dependencies to figure out what.

In my case, it was io.vertx:vertx-lang-kotlin-coroutines:3.5.1.

If there is no update for the dependency, there is not much you can do about it

Comments

7

After reading Kotlin Gradle Script Topic I find out that some ponits

If you're targeting JDK 7 or JDK 8, you can use extended versions of the Kotlin standard library which contain additional extension functions for APIs added in new JDK versions. Instead of kotlin-stdlib, use one of the following dependencies:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

I used implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" in my project. I think it's because of compileOptions set in build.graddle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Comments

1

You must swap the codes below:

     implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

Not jre > jdk

     implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

Comments

1

Change SDK7 to Java SDK8 try this:

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.