[Android] gradle: fix java JVM to v8

Steve Lhomme git at videolan.org
Wed Jun 10 09:28:00 UTC 2026


vlc-android | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Feb 18 14:18:55 2026 +0100| [a48b888e8de9c91bbb0c7418fc93eac56f49323e] | committer: Steve Lhomme

gradle: fix java JVM to v8

It's already set for all kotlin tasks.

Either we set it only on a few kotlin target that require it (libvlcjni ?)
or we set it globally but AGP 9 complains it doesn't match the java compiler
version which is 11 by default.

libjvlcjni doesn't have any kotlin so it doesn't even complain. And it
doesn't set sourceCompatibility either.

> https://code.videolan.org/videolan/vlc-android/commit/a48b888e8de9c91bbb0c7418fc93eac56f49323e
---

 application/app/build.gradle                  |  4 ++--
 application/live-plot-graph/build.gradle      |  5 +++++
 application/mediadb/build.gradle              |  4 ++++
 application/moviepedia/build.gradle           |  5 +++++
 application/remote-access-client/build.gradle |  4 ++--
 application/remote-access-server/build.gradle |  4 ++--
 application/resources/build.gradle            |  5 +++++
 application/television/build.gradle           |  5 +++++
 application/tools/build.gradle                |  4 ++++
 application/vlc-android/build.gradle          |  4 ++++
 build.gradle                                  | 10 +++++++++-
 medialibrary/build.gradle                     |  4 ++--
 12 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/application/app/build.gradle b/application/app/build.gradle
index b04e1326ed..282c166546 100644
--- a/application/app/build.gradle
+++ b/application/app/build.gradle
@@ -6,8 +6,8 @@ plugins {
 android {
     compileOptions {
         coreLibraryDesugaringEnabled = true
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
     }
 
     packagingOptions {
diff --git a/application/live-plot-graph/build.gradle b/application/live-plot-graph/build.gradle
index 48b4651508..471f511f72 100644
--- a/application/live-plot-graph/build.gradle
+++ b/application/live-plot-graph/build.gradle
@@ -34,6 +34,11 @@ android {
         consumerProguardFiles 'consumer-rules.pro'
     }
 
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
+
     buildTypes {
         release {
             minifyEnabled false
diff --git a/application/mediadb/build.gradle b/application/mediadb/build.gradle
index 2e8b6fc248..2d06a84dfe 100644
--- a/application/mediadb/build.gradle
+++ b/application/mediadb/build.gradle
@@ -35,6 +35,10 @@ android {
         }
     }
 
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
 
     defaultConfig {
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/application/moviepedia/build.gradle b/application/moviepedia/build.gradle
index d5fe61d2c9..bf2b21766d 100644
--- a/application/moviepedia/build.gradle
+++ b/application/moviepedia/build.gradle
@@ -26,6 +26,11 @@ android {
         multiDexEnabled = true
     }
 
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
+    
     buildTypes {
         release {
             minifyEnabled false
diff --git a/application/remote-access-client/build.gradle b/application/remote-access-client/build.gradle
index b29abcbe0f..d8278c5cf4 100644
--- a/application/remote-access-client/build.gradle
+++ b/application/remote-access-client/build.gradle
@@ -56,8 +56,8 @@ android {
         }
     }
     compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
     }
     kotlinOptions {
         jvmTarget = '1.8'
diff --git a/application/remote-access-server/build.gradle b/application/remote-access-server/build.gradle
index d73d6df47b..33cc4f7cfc 100644
--- a/application/remote-access-server/build.gradle
+++ b/application/remote-access-server/build.gradle
@@ -44,8 +44,8 @@ android {
 
     compileOptions {
         coreLibraryDesugaringEnabled = true
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
     }
     kotlinOptions {
         jvmTarget = '1.8'
diff --git a/application/resources/build.gradle b/application/resources/build.gradle
index 3926d075d8..e404e03364 100644
--- a/application/resources/build.gradle
+++ b/application/resources/build.gradle
@@ -18,6 +18,11 @@ android {
         buildConfigField 'String', 'VLC_OPEN_SUBTITLES_API_KEY', "\"${getOSApiKey(project)}\""
         vectorDrawables.useSupportLibrary = true
     }
+    
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
 
     buildTypes {
         release {
diff --git a/application/television/build.gradle b/application/television/build.gradle
index b825e5b23c..146ac647fe 100644
--- a/application/television/build.gradle
+++ b/application/television/build.gradle
@@ -22,6 +22,11 @@ android {
         consumerProguardFiles 'consumer-rules.pro'
     }
 
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
+    
     buildTypes {
         release {
             minifyEnabled false
diff --git a/application/tools/build.gradle b/application/tools/build.gradle
index 1d63894aab..ea567c113f 100644
--- a/application/tools/build.gradle
+++ b/application/tools/build.gradle
@@ -9,6 +9,10 @@ android {
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
     }
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
 
     buildTypes {
         release {
diff --git a/application/vlc-android/build.gradle b/application/vlc-android/build.gradle
index c8712d190a..0a7dd8bfb1 100644
--- a/application/vlc-android/build.gradle
+++ b/application/vlc-android/build.gradle
@@ -66,6 +66,10 @@ android {
         }
     }
 
+    compileOptions {
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
+    }
 
     buildTypes {
         release {
diff --git a/build.gradle b/build.gradle
index b16ddfd451..dab07ae9e3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -34,8 +34,12 @@ allprojects {
         options.addStringOption('encoding', 'UTF-8')
     }
     tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
+        kotlin {
+            compilerOptions {
+                jvmTarget.set("$rootProject.ext.targetJVMKotlin")
+            }
+        }
         kotlinOptions {
-            jvmTarget = JavaVersion.VERSION_1_8.toString()
             freeCompilerArgs += ['-opt-in=kotlin.RequiresOptIn']
         }
     }
@@ -49,6 +53,10 @@ ext {
     remoteAccessVersion = '0.17.0'
     libvlcVersion = vlcMajorVersion == 3 ? '3.7.1' :'4.0.0-eap25'
     medialibraryVersion = '0.13.19' + (vlcMajorVersion == 3 ? '' : '-vlc4')
+
+    targetJVM = JavaVersion.VERSION_1_8
+    targetJVMKotlin = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8
+
     Properties properties = new Properties()
     properties.load(project.rootProject.file('local.properties').newDataInputStream())
     // default ndkVersion in  android_plugin_version in 8.9.1: 27.0.12077973
diff --git a/medialibrary/build.gradle b/medialibrary/build.gradle
index e603f6cb64..d24e40d087 100644
--- a/medialibrary/build.gradle
+++ b/medialibrary/build.gradle
@@ -30,8 +30,8 @@ ext {
 android {
     namespace = 'org.videolan.medialibrary'
     compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
+        sourceCompatibility "$rootProject.ext.targetJVM"
+        targetCompatibility "$rootProject.ext.targetJVM"
     }
 
     defaultConfig {



More information about the Android mailing list