После обновления APK поддерживает меньше устройств, чем ранее

У меня есть относительное простое приложение, которое уже было в Play-Store Google.

Теперь я сделал обновление этого приложения. Одним из пунктов этого обновления было то, что я включаю ZBar-Scanner. Остальные изменения были минимальными и не должны влиять на мою проблему.

Я просто положил последнюю версию своего приложения в Play-Store, и я получил следующее предупреждение: «Предупреждение: активные APK поддерживают меньшее количество устройств, чем ранее активные APK. Некоторые пользователи не будут получать обновления».

Я загрузил ZBarAndroidSDK-0.2.zip из sourceforge.net (http://sourceforge.net/projects/zbar/files/AndroidSDK/) и импортировал его в свой проект, как это объясняется в README-файле.

Я тестировал свое приложение локально на своем HTC Wildfire S (-> Версия 2.3.5), на Samsung Galaxy 3 (GT-I5800 -> Версия 2.2) и на моем Galaxy Nexus (-> Версия 4.2). Никогда не было проблемы. Все сработало. Я также тестировал экспортированный APK и не имел проблем.

Теперь я добавляю этот APK в Play-Store и обновляю свое приложение, и я получаю предупреждение для тестируемых устройств. Ни мой HTC Wildfire, ни мой Samsung Galaxy 3 не могут обновить новую версию.

Может кто-нибудь помочь мне и объяснить мне, в чем проблема?

Большое спасибо!!!

РЕДАКТИРОВАТЬ:

Мой манифест:

<?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> 

И Манифест ZBar:

 <?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> ? <?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> 

Прежде всего, любое изменение используемых устройств должно быть результатом манифеста. Это единственное, что использует рынок Android (Google Play) для определения того, какие устройства могут работать в приложении. Как вы показали, единственное различие заключалось в том, что у вас было требование автофокусировки. Если вы измените эту строку на следующую, она должна работать.

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

По сути, это позволит вам использовать эту функцию, но не требовать ее. Это должно обеспечить полную совместимость со всеми предыдущими устройствами. Для получения дополнительной информации см. Этот ответ .

Я также должен отметить, что я видел, что камера не требуется вашим основным приложением, но требуется zbar. Это также может иметь значение.

У меня была эта проблема с моим приложением (с Zbar scanner) на планшете Zenithink C93 ( http://www.zenithink.com/Eproducts_C93.php ). Мне нужно было создать приложение, совместимое с устройствами Zenithink.

Я опубликовал приложение в Play-Store Google. Когда я попытался установить приложение на Zenithink C93, я получил ошибку: « Этот элемент несовместим с вашим устройством »

Мой манифест имел следующую строку:

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

Но это мне не помогло.

Также у меня был этот тег поддержки-экранов:

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

Как ни странно, но после долгого поискового решения я полностью удалил тег поддержки и установил android: required = "false" для приложения <uses-feature android:name="android.hardware.camera"/> стало совместимым с устройством Zenithink.

Теперь мой манифест выглядит так:

 ... <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... 

Это нехорошее решение, потому что приложение будет совместимо практически со всеми устройствами, но, возможно, это поможет кому-то.