[Android] gradle: set the minSdk once globally

Steve Lhomme git at videolan.org
Thu Jul 24 07:32:35 UTC 2025


vlc-android | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Wed Jul  2 11:08:38 2025 +0200| [df70dd70706468935f3235d458a6aec9166ffcfa] | committer: Nicolas Pomepuy

gradle: set the minSdk once globally

We keep the value in rootProject.ext as it's currenly used by libvlcjni.

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

 application/app/build.gradle                  | 5 -----
 application/donations/build.gradle            | 2 --
 application/live-plot-graph/build.gradle      | 2 --
 application/mediadb/build.gradle              | 2 --
 application/moviepedia/build.gradle           | 2 --
 application/remote-access-client/build.gradle | 2 --
 application/remote-access-server/build.gradle | 1 -
 application/resources/build.gradle            | 1 -
 application/television/build.gradle           | 2 --
 application/tools/build.gradle                | 2 --
 application/vlc-android/build.gradle          | 1 -
 medialibrary/build.gradle                     | 4 ----
 settings.gradle                               | 3 +++
 13 files changed, 3 insertions(+), 26 deletions(-)

diff --git a/application/app/build.gradle b/application/app/build.gradle
index c83df6e26c..b04e1326ed 100644
--- a/application/app/build.gradle
+++ b/application/app/build.gradle
@@ -31,7 +31,6 @@ android {
 
     defaultConfig {
         applicationId rootProject.ext.appId
-        minSdk rootProject.ext.minSdkVersion
         versionCode rootProject.ext.versionCode
         versionName rootProject.ext.versionName
         vectorDrawables.useSupportLibrary = true
@@ -70,9 +69,6 @@ android {
         beforeVariants(selector().withBuildType("vlcBundle")) { variantBuilder ->
             variantBuilder.minSdk = 30
         }
-        beforeVariants(selector().withBuildType("vlcBundleAmazon")) { variantBuilder ->
-            variantBuilder.minSdk = rootProject.ext.minSdkVersion
-        }
     }
 
     buildTypes {
@@ -80,7 +76,6 @@ android {
             minifyEnabled false
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
             kotlinOptions.freeCompilerArgs = ['-Xno-param-assertions']
-            defaultConfig.minSdk rootProject.ext.minSdkVersion
         }
         signedRelease {
             initWith release
diff --git a/application/donations/build.gradle b/application/donations/build.gradle
index 235f34d112..1f34b6f51d 100644
--- a/application/donations/build.gradle
+++ b/application/donations/build.gradle
@@ -40,8 +40,6 @@ android {
 
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
         multiDexEnabled = true
diff --git a/application/live-plot-graph/build.gradle b/application/live-plot-graph/build.gradle
index 82b7ff60ef..48b4651508 100644
--- a/application/live-plot-graph/build.gradle
+++ b/application/live-plot-graph/build.gradle
@@ -30,8 +30,6 @@ plugins {
 android {
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
     }
diff --git a/application/mediadb/build.gradle b/application/mediadb/build.gradle
index e4bd6980e3..2e8b6fc248 100644
--- a/application/mediadb/build.gradle
+++ b/application/mediadb/build.gradle
@@ -37,8 +37,6 @@ android {
 
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
     }
diff --git a/application/moviepedia/build.gradle b/application/moviepedia/build.gradle
index 1d0f74d217..d5fe61d2c9 100644
--- a/application/moviepedia/build.gradle
+++ b/application/moviepedia/build.gradle
@@ -18,8 +18,6 @@ android {
 
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
 
diff --git a/application/remote-access-client/build.gradle b/application/remote-access-client/build.gradle
index 05d4863fb0..5fa0c30aa1 100644
--- a/application/remote-access-client/build.gradle
+++ b/application/remote-access-client/build.gradle
@@ -36,8 +36,6 @@ android {
     namespace = 'org.videolan.vlc.remoteaccessclient'
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
         resValue "string", "build_remote_access_revision", remoteAccessRevision()
diff --git a/application/remote-access-server/build.gradle b/application/remote-access-server/build.gradle
index f01d0d4dc3..08f104ded3 100644
--- a/application/remote-access-server/build.gradle
+++ b/application/remote-access-server/build.gradle
@@ -12,7 +12,6 @@ android {
 
     defaultConfig {
         multiDexEnabled = true
-        minSdk rootProject.ext.minSdkVersion
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
diff --git a/application/resources/build.gradle b/application/resources/build.gradle
index 63ca1ec292..3926d075d8 100644
--- a/application/resources/build.gradle
+++ b/application/resources/build.gradle
@@ -13,7 +13,6 @@ android {
 
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         buildConfigField "String", "APP_ID", "\"${rootProject.ext.appId}\""
         buildConfigField 'String', 'VLC_OPEN_SUBTITLES_API_KEY', "\"${getOSApiKey(project)}\""
diff --git a/application/television/build.gradle b/application/television/build.gradle
index 3c08bb14d9..b825e5b23c 100644
--- a/application/television/build.gradle
+++ b/application/television/build.gradle
@@ -18,8 +18,6 @@ android {
     dataBinding.enabled = true
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles 'consumer-rules.pro'
     }
diff --git a/application/tools/build.gradle b/application/tools/build.gradle
index 25604b0665..1d63894aab 100644
--- a/application/tools/build.gradle
+++ b/application/tools/build.gradle
@@ -6,8 +6,6 @@ plugins {
 android {
 
     defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
     }
diff --git a/application/vlc-android/build.gradle b/application/vlc-android/build.gradle
index 7d7a69011e..62956446f9 100644
--- a/application/vlc-android/build.gradle
+++ b/application/vlc-android/build.gradle
@@ -40,7 +40,6 @@ android {
         // that the app's state is completely cleared between tests.
         testInstrumentationRunnerArguments clearPackageData: 'true'
 
-        minSdk rootProject.ext.minSdkVersion
         vectorDrawables.useSupportLibrary = true
     }
 
diff --git a/medialibrary/build.gradle b/medialibrary/build.gradle
index 2814652403..cc155e4c6e 100644
--- a/medialibrary/build.gradle
+++ b/medialibrary/build.gradle
@@ -34,10 +34,6 @@ android {
         targetCompatibility JavaVersion.VERSION_1_8
     }
 
-    defaultConfig {
-        minSdk rootProject.ext.minSdkVersion
-    }
-
     sourceSets {
         main {
             jniLibs.srcDir 'jni/libs' // Where generated .so files are placed.
diff --git a/settings.gradle b/settings.gradle
index fecc06c801..2049113f20 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -9,7 +9,10 @@ plugins {
     id("com.android.settings") version "8.11.0"
 }
 
+def vlcMajorVersion = hasProperty('forceVlc4') && getProperty('forceVlc4') ? 4 : 3
+
 android {
+    minSdk = vlcMajorVersion == 3 ? 17 : 21
     targetSdk = 34
     compileSdk = 34 // Dockers: 3.0=36 / 4.0=36
     buildToolsVersion = '35.0.0'



More information about the Android mailing list