Я не решаюсь задавать этот вопрос, потому что похоже, что у многих людей есть подобная проблема, но я не нашел решения, которое решает мой конкретный случай.
Я разработал приложение для Android ( ссылка на фактическое приложение ) и загрузил его в магазин Play. Магазин Play говорит
"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."
Конечно, это телефон, на котором я разработал приложение, поэтому оно должно быть совместимым. Некоторые люди с другими устройствами говорят, что он сообщает о совместимости, другие говорят, что он сообщает о несовместимости, но я не могу найти тенденции. (По-видимому, я не очень много знаю людей с устройствами Android.)
Я пробовал следующее:
перемещение большого файла из
res/raw
каталога, как предлагается в этом ответе . Единственным файлом там был текстовый файл размером ~ 700 КБ, но я переместил егоassets/
без видимых изменений.добавление следующих двух утверждений функций:
<uses-feature android:name="android.hardware.faketouch" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
думая, что, возможно, мой телефон не утверждает, что поддерживает обычную
android.hardware.touchscreen
функцию, но опять же, без видимых изменений.
При загрузке APK в Play Store единственным фильтром, который он сообщает как активный, является эта android.hardware.faketouch
функция.
Ниже приводится результат aapt dump badging bin/NZSLDict-release.apk
:
package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary' label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'
и для полноты, мой файл манифеста:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hewgill.android.nzsldict"
android:versionCode="3"
android:versionName="1.0.2">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
<uses-feature android:name="android.hardware.faketouch" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application android:label="@string/app_name"
android:icon="@drawable/icon">
<activity android:name="NZSLDictionary"
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=".WordActivity" />
<activity android:name=".VideoActivity" />
<activity android:name=".AboutActivity" />
</application>
</manifest>
В разделе «Доступность устройств» магазина Play я вижу, что поддерживаются все устройства HTC, включая Wildfire S, за исключением «G1 (форель)» и «Touch Viva (опал)», какими бы они ни были. На самом деле я вижу, что и «Wildfire S (marvel)», и «Wildfire S A515c (marvelc)» указаны как поддерживаемые, но мой «Wildfire S A510b» конкретно не упоминается. Может ли такой идентификатор подмодели иметь такое большое значение? Мне удалось без проблем загрузить на телефон несколько других приложений из Google Play.
Единственное, что я пока не сделал, - это подождать 4-6 часов после загрузки последней версии (как в этом комментарии ), чтобы узнать, по-прежнему ли она несовместима с моим телефоном. Однако на странице магазина Play в настоящее время отображается версия 1.0.2, которая является последней из загруженных мной.
handleSilentException
метод для молчания. По крайней мере, он скажет вам, на каком оборудовании работает приложение.