我很犹豫要不要问这个问题,因为它看起来好像是 很多人都有类似的问题,但是我还没有找到解决我的特殊实例的解决方案。
我已经开发了一个 Android 应用程序(链接到实际的应用程序) ,并已上传到 Play 商店
"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."
当然,这是我开发的手机上的应用程序,所以它的 应该兼容。有些人用其他设备说它报告兼容,其他人说它报告不兼容,但我找不到任何趋势。(显然,我认识的使用 Android 设备的人并不多。)
我试过以下方法:
按照 这个答案的建议,从 res/raw
目录中移出一个较大的文件。里面唯一的文件是一个大约700kB 的文本文件,但是我把它移到了 assets/
,没有明显的变化。
添加以下两个特性断言:
<uses-feature android:name="android.hardware.faketouch" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
想着也许我的手机不支持通常的 android.hardware.touchscreen
功能,但再次,没有明显的变化。
当将 APK 上传到 Play 存储时,它报告为活动的唯一过滤器是 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 商店的“设备可用性”部分,我可以看到除了“ G1(鳟鱼)”和“ Touch Viva (蛋白石)”之外,包括 Wildfire S 在内的所有 HTC 设备都得到了支持。事实上,我看到“ Wildfire S (marvel)”和“ Wildfire S A515c”都被列为支持,但是我的“ Wildfire S A510b”没有被特别提到。这种子模型标识符有那么重要吗?我已经能够下载几个其他应用程序从谷歌播放到我的手机没有问题。
此时我所做的唯一一件事就是在上传最新版本(如 此评论)后等待4-6小时,看看它是否仍然说它与我的手机不兼容。但是,Play store 页面目前显示的是1.0.2,这是我上传的最新版本。