How to change Java version of libgdx project?

Viewed 163

I'm creating simple game with libgdx java library and can't figure out how to change java version of the project.

Problem: It uses 1.7 and I am trying to change it to 1.8

Things I tried( referring to answer ):

  1. Changed sdk version to 1.8 in Project Structure > Project

  2. Changed versions of each module in module section

  3. Tried to modify build.gradle file to run with 1.8 java

    buildscript {

         repositories {
             mavenLocal()
             mavenCentral()
             gradlePluginPortal()
             maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
             google()
         }
         dependencies {
             classpath 'org.wisepersist:gwt-gradle-plugin:1.1.16'
             classpath 'org.gretty:gretty:3.0.7'
    
    
         }
     }
    
     allprojects {
         apply plugin: "eclipse"
    
    
    
         version = '1.0'
         ext {
             appName = "Mario"
             gdxVersion = '1.11.0'
             roboVMVersion = '2.3.16'
             box2DLightsVersion = '1.5'
             ashleyVersion = '1.7.4'
             aiVersion = '1.8.2'
             gdxControllersVersion = '2.2.1'
         }
    
         repositories {
             mavenLocal()
             mavenCentral()
             google()
             gradlePluginPortal()
             maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
             maven { url "https://oss.sonatype.org/content/repositories/releases/" }
             maven { url "https://jitpack.io" }
         }
     }
    
     project(":desktop") {
         apply plugin: "java-library"
    
         // Added
         apply plugin: "java"
         sourceCompatibility = 1.8
         targetCompatibility = 1.8
    
    
         dependencies {
             implementation project(":core")
             api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
             api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
             api "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
    
         }
     }
    
     project(":core") {
         apply plugin: "java-library"
    
             // Added 
         apply plugin: "java"
         sourceCompatibility = 1.8
         targetCompatibility = 1.8
    
         dependencies {
             api "com.badlogicgames.gdx:gdx:$gdxVersion"
             api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
         }
     }
    
     project(":html") {
         apply plugin: "java-library"
         apply plugin: "gwt"
         apply plugin: "war"
         apply plugin: "org.gretty"
    
         //Added
         apply plugin: "java"
         sourceCompatibility = 1.8
         targetCompatibility = 1.8
    
    
    
         dependencies {
             implementation project(":core")
             api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion"
             api "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
             api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"
             api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources"
             api "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources"
    
         }
     }
    
1 Answers

Your approach of changing the sourceCompatibility to 1.8 is correct, but you did it in the wrong file. There are several build.gradle files in a libgdx project.

In your root directory (where you found the build.gradle file that you mentioned in your question), there is a directory core. Inside this project there is another build.gradle that includes the sourceCompatibility.
The file should look like this:

sourceCompatibility = 1.7 // change to 1.8 here to use java-8 features
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "src/" ]

eclipse.project.name = appName + "-core"
Related