How to enable Java 8 language features in Android studio

17.1k Views Asked by At

Now release with Android Studio 2.4 Preview 4, it is now supported Java 8 language features. Jack is no longer required, and need to disable Jack to use the improved Java 8 support built into the default toolchain.

Now we need to disable Jack and switch to the default toolchain.

How enable Java 8 features to use in the android studio project?

5

There are 5 best solutions below

0
On BEST ANSWER

Enable Java 8 Support:

To start using supported Java 8 language features, update the Android plugin to 2.4.0-alpha4 (or higher) and add the following to your module’s build.gradle file:

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Disable jackOptions:

We can disable Jack and switch to the default toolchain, by removing the jackOptions block from module’s build.gradle file:

android {
    ...
    defaultConfig {
        ...
        // Remove this block.
        jackOptions {
            enabled true
        }
    }

}

Note: If your project is using Jack, Retrolambda, or DexGuard, then Android studio default uses Java 8 support provided by those tool.

Disable Java 8 Support:

We can also disable Java 8 features in your project in case you are facing any issue related Java 8. We can update gradle.properties file by adding below line to disable Java 8 features:

android.enableDesugar=false

Check Use Java 8 language features for more details about Java 8 features.

0
On

Simple process -

Right click on Project > Open Module Setting (F4) > Modules (app) >

Select -

Source Compatibility - 1.8
Target Compatibility - 1.8
0
On
android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

And enable jackOption in your same module gradle

 defaultConfig {
            jackOptions {
            enabled true
        }
    }

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "****************"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        jackOptions {
            enabled true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_1_8
    }
}

0
On

Clean answer-

Just add following to app level build.gradle and Sync

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
0
On

I know this has been already answered, but after the new Gradle and android studio update, jackOptions is deprecated.

 android {
      .....

        defaultConfig {
        ..........
            //remove jackOptions and add
            android.compileOptions.sourceCompatibility 1.8
            android.compileOptions.targetCompatibility 1.8

        }
        // Keep the following configuration in order to target Java 8.
         compileOptions {

           sourceCompatibility JavaVersion.VERSION_1_8
           targetCompatibility JavaVersion.VERSION_1_8
       }
  }