I develop an application and its in Alpha Testings stage in play store. I use a couple devices to test it up.
Yesterday I encountered a weird problem after app update. In play store page I get "Your device isn't compatible with this version" message for one of my devices, so can't install an app there. But it works just fine during development, for debug build!
Country settings of play store is not a problem since I allow all countries for testing now.
Update: I was able to install signed apk to the device. The problem is not in a file or code, but in Play Store settings! What else could it be except Country settings?
Any help is highly appreciated!
I was facing the same problem as you. On tablets our application could not be downloaded or even found through search on the Google Play Store. The reason this is happening is because Google Play filters applications based on your device's hardware and software capabilities.
My app had specified CALL_PHONE as one of the required permissions, but in code we handled tablets by checking whether the device had phone capabilities. However, since the permission was declared in the AndroidManifest file, Google Play assumed that only devices with calling capabilities could download and use the application.
The fix was to explicitly tell Google that phone calling is not a required feature:
<uses-feature
android:name="android.hardware.telephony"
android:required="false"/>
The uses-feature segment in the developer guides contains all the relevant information:
Google Play uses the elements declared in your app
manifest to filter your app from devices that do not meet its hardware
and software feature requirements.
By specifying the features that your application requires, you enable
Google Play to present your application only to users whose devices
meet the application's feature requirements, rather than presenting it
to all users.
Maybe your problem is linked to the fact that your "google play services" is not up to date or even installed.
Try check it out here
Related
I have to make an app for an organization. The app must be visible only for the organization's users. I used Google Play Console to upload my apk and I did everything from this tutorial.
The problem is that even if I have added the app on Google Admin Console whitelist, an set the visibility to everyone, I can not see the app on my enrolled devices. The device is listed on mobile devices from Google Admin Device Management, I can see all the public apps from the app whitelist but not my private one.
On all the internet I couldn't find any helpful tutorial I have no idea where I did mistake.
Any help, tutorial or advice will be a new chance to find the problem in my configuration. Many thanks.
There is another work-around for your app to be used by some specific users. The play store allows an app to be in the beta mode where you can add the users of your app just by adding their Gmail addresses. This is mainly used for testing purpose, however, the application can be found in Google Play store from the account which you have added in the list of beta testers and it might serve your purpose.
For more information, please follow this link.
SOLVED
After some checkings I found out that the apk had 0 supported devices because of one permission required in manifest file.
You may see how many supported devices has de apk in Release management -> Device catalog.
After removing that permission and uploading the new apk to Google Play Console, the app appeared.
we develop apps for android version 7 and above.
we test our app on many devices. strangely, we have seen that on some of the devices our app is not available to install on google market (play store).
the question is, that does google decide this by calculating the system (device) requirement or are we doing something wrong.
our AndroidManifest.xml file contains this line with other usual ones.
uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11"
I think you are looking for Google Play Filters.
When a user searches or browses for apps to download on Google Play, the results are filtered based on which applications are compatible with the device. For example, if an app requires a camera, Google Play would not show the app to devices that do not have a camera. This filtering helps developers manage the distribution of their apps and helps ensure the best possible experience for users.
Filtering in Google Play is based on several types of app metadata and configuration settings, including manifest declarations, required libraries,architecture dependencies, and distribution controls set in the Google Play Developer Console, such as geographic targeting, pricing, and more.
Please find the official article from Google here:
http://developer.android.com/google/play/filters.html
I found Google Keep from the Google Play on my device.
However, after reinstalling the Android system, I can not find Google keep from the Google Play and it shows that "Your device is not compatible with this version"
I am very confused for this searching result while the same device ran well with this app before.
I can understand there are several ways to install this app on my device again.
A couple of questions confuse me..
How can I check the features that this app may change in the new version? This may cause the reason why I can not find it in the Google Play.
Will that be any possibility to modify my device source code in order to find this app on the Google Play in my device?
Thanks
I just found that shouldnt the permission(feature) issue because I can find and install other apps which require more permissions than Google Keep.
The permissions that have anything to do with hardware are:
record audio (needs microphone)
precise location (GPS)
control vibration
If your phone has these features and runs Android 4.0 and up, it should be compatible.
I see two possible reasons:
After reinstalling you have an older version of Android. If this is the case, check for updates and after updating it should work
Your device model may have been blacklisted because of compatibility issues. In this case, Google may find a solution in the future and Keep will become available.
You can install Keep anyway, sideloading it. You just have to download the .apk from somewhere (Google it and be careful for malware).
When uploading an Android application into the market Google Play determine a list of compatible devices depending of your application manifest settings like for example:
uses-permission
uses-feature
uses-sdk
supports-screens
Until now I discovered I had to tweak my manifest in order to have my app available to more devices only after uploading my app to Google Play.
Is there a way to check device compatibility before to upload it to the market?
There is this "aapt" tool from the SDK mentionned in http://developer.android.com/guide/topics/manifest/uses-feature-element.html that will give you what you are asking.
However, I never used this tool and I'm still believing that uploading a file is the best way to be sure that everything is OK. Sure, it takes a little more time but at least, you're assured to have the final answer.
If I set in the Manifest.xml and try to install the .apk with ecclipse, the install fails with a missing library error showing logcat. Thats ok for me as developer.
But how will be the behaviour in Google Play?
Simply writing a failure to logcat is not useful for normal users. Useful would be if an appropriate error dialog would appear, informing the user about the error, why and how to fix it (In this case, ideally a link to the missing app in Google Play, so the user can install the missing app easily)
Does anyone know, how exactly the error is handled, if a user try to install the .apk via android market (or other market places)?
Is there a way to costumise that handling?
But how will be the behaviour in Google Play?
The app will not show up in the Google Play Store, if the device does not have the firmware library you require. Hence, the user will not have an opportunity to install it.
This is covered in the Filters on Google Play section of the docs.
Based on the uses-library documentation you can use reflection to determine if a particular class is available. I haven't done this myself but here is a blog spot in which reflection is used to determine if the device support's live wallpapers Using Reflection to test if an Android device is using 'Live Wallpapers'.
It must not be very hard to adapt it for other libraries.
Also, from API 7 there is a android:required value for tag that allows the application to be installed from Google Play even if the library is not present in the user's device.
Hope this helps...