I'm in testing phase of my android app. I've uploaded and aab for internal testing and shared link with the testers but a few testers report, they see the message "This app isn't available for your device because it was made for an older version of android." However, they can install app through an apk and others can install via test link as well. Android users have versions 11-16. I've tried making the minsdk, targetsdk and compilesdk versions compatible with the issue reporting devices but nothing worked so far.
How can I make the test link work for everyone?
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace = "com.theappcentral.abcbooks"
compileSdk = 36
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.theappcentral.abcbooks"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdkVersion = 24
targetSdk = 35
versionCode = flutter.versionCode
versionName = flutter.versionName
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file("${rootProject.projectDir}/app/${keystoreProperties['storeFile']}") : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
shrinkResources false
minifyEnabled false
signingConfig = signingConfigs.release
}
}
}
flutter {
source = "../.."
}
This is very unlikely related to compileSdk, targetSdk, or Flutter version.
If the APK installs manually but the Play internal testing link shows:
> “This app isn’t available for your device because it was made for an older version of Android.”
then this is almost always Google Play device filtering, not SDK mismatch.
Play does additional filtering based on:
To find the exact reason:
If the APK installs but Play link doesn’t, minSdkVersion is not the issue.
The Device Catalog will show the real cause.