Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App is incompatible with all devices after publishing to the Market but same was working when moved directly to the device

I have developed an app using PhoneGap and tested the same in different version of emulator and also in my Motorola Photon. I have not faced any problem in testing.

But when I published the same in the market it says "This app is incompatible with all of your devices.". My devices are with different screen size, different OS version ranging from 2.1 to 2.4.

In publish home page, it says "This application is available to over 679 devices." It includes Motorola Photon 4g and all other devices which I have registered in the market download.

I have republished the code many times by updating manifest file and java file based on all the answers given through out the stackoverflow for this kind of issues. To list it,

  • Removing user-permission
  • Updating all combinations of supports-screens
  • Refreshing the save button in the publish page several times
  • Uninstalling the apps in my mobile (But I have few more devices where I have not tested my apps but still says incompatible)
  • Running aapt tool
  • Removing the jar files from lib folder and referring that externally in Eclipse
  • Few more changes that I cant recall

below is the manifest file

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.myapps"
android:versionCode="5" android:versionName="1.4">
<uses-sdk android:minSdkVersion="7" />
<supports-screens android:largeScreens="true"
    android:normalScreens="true" android:smallScreens="true"
    android:resizeable="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" /> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<application android:icon="@drawable/app_icon" android:label="@string/app_name">
<activity android:name="com.test.myapps.HomePage" 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="com.google.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">
     </activity>
</application>
</manifest>

Please, help me in fixing the same. Thanks in advance....

like image 755
sharmi Avatar asked Jan 25 '12 18:01

sharmi


People also ask

What do you do when an app is not compatible with your device?

It appears to be an issue with Google's Android operating system. To fix the “your device is not compatible with this version” error message, try clearing the Google Play Store cache, and then data. Next, restart the Google Play Store and try installing the app again.

What does incompatible app mean?

October 19th, 2021 in: Help Desk. While downloading specific apps on your Android device, you might find that the Play Store displays a “Your device isn't compatible with this version” error, implying that your device isn't compatible with the app.

What are the different compatibilities you need to consider for your app and which Compatibility do you need to consider first?

There are two types of compatibility: device compatibility and app compatibility. Because Android is an open source project, any hardware manufacturer can build a device that runs the Android operating system.


1 Answers

Did you specifically run "aapt dump badging <.apkfile> ?

Android docs here.

I had a similar problem. Turns out I needed to use in my manifest the android:required="false" for several uses-features, like:

< uses-feature android:name="android.hardware.telephony" android:required="false" >

Full manifest example here. The results of dump badging showed that the market had added several uses-features (a bit further down in aapt output) that excluded mostly Samsung devices.

like image 98
Libby Avatar answered Oct 09 '22 01:10

Libby