After updating, the APK supports fewer devices than before

I have a relatively simple application that was already on the Google Play Store.

Now I have made an update to this application. One of the points of this update was that I include ZBar-Scanner. Other changes were minimal and should not affect my problem.

I just posted a new version of my application on the Play Store and I get the following warning: "Warning: active APKs support fewer devices than previously active APKs. Some users will not receive updates."

I downloaded ZBarAndroidSDK-0.2.zip from sourceforge.net (http://sourceforge.net/projects/zbar/files/AndroidSDK/) and imported it into my project, as explained in the README file.

I tested my application locally on my HTC Wildfire S (-> Version 2.3.5), on the Samsung Galaxy 3 (GT-I5800 → Version 2.2) and on my Galaxy Nexus (-> Version 4.2). There has never been a problem. Everything worked. I also tested the exported APK and had no problems.

Now I add this APK to the Play-Store and update my application, and I get a warning for the devices under test. Neither my HTC Wildfire nor my Samsung Galaxy 3 can update the new version.

Can someone help me and explain to me what the problem is?

Thank you so much!

EDIT:

My manifest:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.myproject" android:versionCode="5" android:versionName="2.0" android:installLocation="preferExternal" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardware.camera" android:required="false"/> <application android:uiOptions="splitActionBarWhenNarrow" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <!-- enable the search dialog to send searches to SearchableActivity throughout the application --> <meta-data android:name="android.app.default_searchable" android:value=".SearchableActivity" /> <activity android:label="@string/app_name" android:name=".MainActivity" android:screenOrientation="portrait" android:theme="@style/Theme.NoBackground"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="@string/app_name" android:screenOrientation="landscape" android:name=".zbar.ZBarScannerActivity"> </activity> </application> 

And the ZBar manifest:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.sourceforge.zbar.android.CameraTest" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <application android:label="@string/app_name" > <activity android:name="CameraTestActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

+5
android android-manifest android-2.2-froyo android-2.3-gingerbread zbar
source share
2 answers

First of all, any change to the devices used should be the result of a manifest. This is the only thing that uses the Android market (Google Play) to determine which devices can work in the application. As you showed, the only difference was that you had an autofocus requirement. If you change this line to the next, it should work.

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

Essentially, this will allow you to use this function, but not require it. This should ensure full compatibility with all previous devices. See this answer for more information.

I should also note that I saw that the camera is not required by your main application, but zbar is required. It can also make a difference.

+3
source share

I had this problem with my application (with Zbar scanner) on a Zenithink C93 tablet ( http://www.zenithink.com/Eproducts_C93.php ), I needed to create an application compatible with Zenithink devices.

I published the application on the Google Play Store. When I tried to install the application on Zenithink C93, I received an error: "This item is not compatible with your device"

My manifest had the following line:

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

But that did not help me.

I also had this support tag:

 <supports-screens android:smallScreens="false" android:normalScreens="false" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/> 

Strange, but after a long search, I removed the support tag and placed android: required = "false" for the application <uses-feature android:name="android.hardware.camera"/> became compatible with the Zenithink device.

Now my manifest looks like this:

 ... <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="15"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> <application... 

This is not a good solution, because the application will be compatible with almost all devices, but perhaps this will help someone.

+1
source share

All Articles