'i can't install an android app i made on the other android devices, it says "app not installed"

I made an android app although I can run and install it successfully through android studio into my android phone but when I share & send it via Bleutouth from my phone to another android phone it always fails to be installed and keep saying "app not installed". I tried to install it on many other devices but it keeps saying the same thing. I'm new to android studio if anyone can help me with that I would be so thankful. Note : ( the app gets installed without problems when I plug any phone and do it through android studio, but when I share it from my phone to another with bleutouth it doesn't get installed)

Here is AndroidManifest.xml just in case :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.universityapp">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.UniversityApp">
        <activity
            android:name=".ebook.PdfViewerActivity"
            android:exported="false" />
        <activity
            android:name=".ebook.EbookActivity"
            android:exported="false" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

default config from gradle


    defaultConfig {
        applicationId "com.example.universityapp"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }


Solution 1:[1]

This could be a minimum sdk issue Check your manifest or gradle file for the following line

<uses-sdk android:minSdkVersion="19"/> -  In manifest

or below in your build.gradle file

defaultConfig {
    applicationId "com.name.app"
    minSdkVersion 19    // This over here
    targetSdkVersion 23
}

It could be that the other devices are below your minimum sdk version. You can cross check the sdk versions to android versions here : -> API Levels

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 David Kariuki