【发布时间】:2012-05-07 02:18:50
【问题描述】:
我很犹豫要不要问这个问题,因为它看起来好像many people have a similar problem,但我没有找到可以解决我的特定实例的解决方案。
我开发了一个 Android 应用 (link to the actual app) 并将其上传到 Play 商店。 Play 商店说
"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."
当然,那是我开发应用程序的手机,所以它应该兼容。其他设备有人说兼容,有人说不兼容,但我找不到趋势。 (显然我不知道有多少人使用 Android 设备。)
我尝试了以下方法:
按照this answer 的建议将大文件从
res/raw目录中移出。里面唯一的文件是一个大约 700 kB 的文本文件,但我把它移到了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 (trout)”和“Touch Viva (opal)”之外的所有 HTC 设备,包括 Wildfire S,都受支持,无论是那些是。实际上我看到“Wildfire S (marvel)”和“Wildfire S A515c (marvelc)”都被列为支持,但我的“Wildfire S A510b”没有特别提到。这种子模型标识符有那么重要吗?我已经能够从 Google Play 将其他几个应用下载到我的手机上,没有任何问题。
此时我没有做的唯一一件事是在上传最新版本(如this comment)后等待 4-6 小时,看看它是否仍然说它与我的手机不兼容.但是,Play 商店页面目前显示的是 1.0.2,这是我上传的最新版本。
【问题讨论】:
-
设置 ACRA:code.google.com/p/acra 我在第一次启动应用程序时运行它以获取手机的完整规格,并使用
handleSilentException静默报告的方法。它至少会告诉您该应用正在使用的硬件。 -
@GavinMiller:谢谢,但是当 Play 商店完全拒绝交付应用程序时,我不确定这是否会有所帮助。
-
也许我误解了你的评论:“有些人用其他设备说它报告兼容,其他人说它报告不兼容,但我找不到趋势。”如果很多不认识的人都可以下载安装应用,可以收集更大的硬件数据池来尝试形成趋势。从而缓解“我不认识很多人使用Android设备”。问题。
-
@GavinMiller:但是,这只会告诉我 Google Play 认为它可以安装在哪些设备上,而不会提供有关 Google Play 相信哪些设备的信息无法安装。此外,即使确定哪些设备正常,哪些不正常,也不能真正帮助我解决这个问题。
-
检查这个解决方案它对我有用stackoverflow.com/a/14020303/3392323
标签: android google-play