In general one can enforce the downgrading of minSdkVersion
(and actually any kind of changes) by increasing the APK's versionCode
-- not to be confounded with versionName
! -- as that new version (with the now lowered minSdkVersion
) of the APK will be prioritized at Google Play.
A similar case has been discussed in this Stackoverflow thread.
Also note that, as M.L.Murphy (2019), The Busy Coder's Guide to Android Development, CommonsWare, p.85 points out,
Your defaultConfig
closure inside the android
closure in your module's build.gradle
file has a pair of properties named minSdkVersion
and targetSdkVersion
. Technically, these override values that could be defined via a
<uses-sdk>
element in the manifest
So in case you employ Gradle (as most developers do, as user1209216 reminded), it may be of use to check the build.gradle
file for potentially conflicting {min,target,max}SdkVersion
values. Actually it would be enough, and even preferable, to define these values in build.gradle
and to skip them in AndroidManifest.xml
. One would tie oneself to Gradle, but that's not really an argument nowadays.
P.S.: One may want to pay attention at some constraints concerning minSdkVersion
, as listed in the overview on apilevels.com:
- Google Play services do not support Android versions below API level 19.
- Jetpack Compose requires
minSdkVersion
>= 21.
- Jetpack/AndroidX libraries require
minSdkVersion
>= 14.
Note, that these values may change with time.