Testers unable to install app via aab link but can install apk


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 = "../.."
}
3
Feb 23 at 7:07 AM
User AvatarZoha Farooqui
#android#flutter#apk#android-bundle#google-play-internal-testing

Accepted Answer

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:

  • ABI (CPU architecture)
  • Device catalog exclusions
  • Play Protect certification

To find the exact reason:

  1. Open Play Console
  2. Go to Release → App bundle explorer
  3. Open your AAB
  4. Click Device catalog
  5. Search for one of the affected device models
  6. Check the exclusion reason

If the APK installs but Play link doesn’t, minSdkVersion is not the issue.
The Device Catalog will show the real cause.

User AvatarPratik Bharad
Feb 23 at 8:54 AM
1