"your device isn't compatible with this version"
Asked Answered
R

6

10

I put an app in the play store and my friend, who is running 4.0.3 on two devices, got the following message when trying to install my app : "your device isn't compatible with this version".

One device allows it to install and the other doesn't. I allow for API 3-15 and both devices are 4.0.3. What's the problem?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.snotyak.basicfuelcalcpro"
    android:versionCode="2"
    android:versionName="1.2.3" >
    <uses-sdk
        android:minSdkVersion="4" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:name=".CalcApp"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/MainTheme" >
        <activity android:name=".CalcActivity" >
        </activity>
        <activity
            android:name=".PrefsActivity"
            android:label="@string/prefs_name" />
        <activity
            android:name=".CalcTabView"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".AboutActivity"></activity>
        <activity android:name=".HistoryActivity" />
        <activity android:name=".AnalysisActivity" />
    </application>
</manifest>
Ribose answered 20/5, 2012 at 1:4 Comment(3)
Post the AndroidManifest.xml and the name device that your friend has. Take special not of any use-feature and permission tags you have in your manifest.Keim
My friend has a Galaxy S2 (doesn't work) and it works on his Transformer Prime.Ribose
At this point it could be a restriction in the Android Market settings, you could have accidentally filtered out the device somehow. Look at my updated post for details. Also try looking at ADB while trying to install the apk for details. Use the command adb install Filename.apk to install it to the Galaxy.Keim
S
10

Double check the <uses-feature> tag in your AndroidManifest.xml file. It sounds like your application requires a feature that one of the devices doesn't support.

You should also check to see if you have the following declared in your AndroidManifest.xml,

<uses-sdk
    android:minSdkVersion="3" />

You want your application to work for devices running API 3 and above (not APIs 3 through 15). The code above will ensure that your application works with all devices above API 3. Note that you generally don't want to use the android:maxSdkVersion attribute (if you are currently using it).

Sanburn answered 20/5, 2012 at 1:30 Comment(7)
Doubtful that this is the answer. It's a hardware filter that's probably causing the incompatibility.Keim
Ahh, right... didn't see that both devices were running 4.0.3. In that case, I'd need more information to determine what exactly is wrong...Sanburn
I don't have any <uses-feature> tags. I did get rid of my android:targetSdkVersion="15"Ribose
What is the name of the application on the Google Play store and what device are you trying to install the application on?Sanburn
This wasn't the answer but it was the answer I found most helpful.Ribose
@Ribose so, what was the answer?Finnougrian
@Finnougrian This post is 7 years old, so I doubt it's still relevant, but check out my (seemingly unhelpful) answer down below.Ribose
K
14

Being that the 2 devices are on the same version the logical explanation that is causing the incompatibility message is that the devices are different and the app is using a feature that one of them doesn't support. Look at your AndroidManifest.xml and pay close attention to uses-feature and uses-permission tags. The Google Play store will use these to filter out devices that are not compatible.

For example if you have <uses-permission android:name="android.hardware.camera"> and one of the phone doesn't have a camera then it will be filtered out. Because the request for the permission implies that your app needs a camera to function properly. You can fix this by adding <uses-feature android:name="android.hardware.camera" android:required="false" /> into your AndroidManifest.xml. Of course, you'll also need code to safeguard your app from attempting to access the camera when it's not available.

Look at this page for more information, Google Play Filters.

Google Play has a way to indicate what's causing the device to be filtered out. It's very terse but go to the bottom of the page under devices and select Show Devices and then filter for Galaxy to verify that it's excluding based on manifest.

Google Play Filter

Keim answered 20/5, 2012 at 1:34 Comment(2)
I only have <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> and it's necessary for my app :/Ribose
That should be ok. Almost all devices have writable memory.Keim
S
10

Double check the <uses-feature> tag in your AndroidManifest.xml file. It sounds like your application requires a feature that one of the devices doesn't support.

You should also check to see if you have the following declared in your AndroidManifest.xml,

<uses-sdk
    android:minSdkVersion="3" />

You want your application to work for devices running API 3 and above (not APIs 3 through 15). The code above will ensure that your application works with all devices above API 3. Note that you generally don't want to use the android:maxSdkVersion attribute (if you are currently using it).

Sanburn answered 20/5, 2012 at 1:30 Comment(7)
Doubtful that this is the answer. It's a hardware filter that's probably causing the incompatibility.Keim
Ahh, right... didn't see that both devices were running 4.0.3. In that case, I'd need more information to determine what exactly is wrong...Sanburn
I don't have any <uses-feature> tags. I did get rid of my android:targetSdkVersion="15"Ribose
What is the name of the application on the Google Play store and what device are you trying to install the application on?Sanburn
This wasn't the answer but it was the answer I found most helpful.Ribose
@Ribose so, what was the answer?Finnougrian
@Finnougrian This post is 7 years old, so I doubt it's still relevant, but check out my (seemingly unhelpful) answer down below.Ribose
R
1

I got rid of

  <uses-sdk android:targetSdkVersion="15" /> 

and it works now.

Ribose answered 20/5, 2012 at 18:10 Comment(0)
A
1

Always things defined in Manifest, Google Playstore Filters out Your app to some devices. Something like:

  1. Declared specific Target Sdk Version.
  2. Defined Camera permission(Will filter devices without Camera)
  3. Uses Feature Camera.
  4. SIM enabled device.
  5. Device with Wifi.
  6. Min sdk version.

So, You have to keep in mind that you have to reach maximum devices for your target, you have to Opt out some of the features and Permissions.

Hope this gives you idea about releasing App.

Asta answered 5/3, 2018 at 6:40 Comment(0)
J
1

I've the same issue with one of my testers, if the tester is using an old android, you'll have to provide a web link for that user to accept testing invitation, he\she will have to open the link in a browser and accept the testing invitation.

You can get the link from google play console, go the testing track summary page, open testers tab, scroll down to "How testers join your test", here you'll find two links, one for android and one for web, copy the one for web and send it to those testers, after they accept the testing invitation they can access the app from the other link and there wont be an error.

Jugoslavia answered 13/12, 2020 at 9:10 Comment(0)
H
1

In my case I removed these permissions from Manifest then it started working:

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />

This is because these permissions already exist in the library which we added in the app level build.gradle file, so there is no need to define them explicitly in the main Manifest file.

Hildebrandt answered 1/8, 2022 at 8:47 Comment(1)
In my case i checked google play device catalog, then found Reasons the device is unsupported Doesn't support required feature: android.hardware.camera2, android.hardware.camera2.autofocus, android.hardware.camera2.fullLikelihood

© 2022 - 2024 — McMap. All rights reserved.