为何谷歌Play商店说我的Andr​​oid应用程序是用我自己的设备不兼容?

问题描述:

我很犹豫要问这个问题,因为它看起来好像many人有类似的问题,但我没有发现任何解决方案,解决了我的特殊情况。

I am hesitant to ask this question, because it appears as though many people have a similar problem and yet I have found no solution that solves my particular instance.

我已经开发了一个Android应用程序(链接到实际的应用程序),并上传到Play商店。 Play商店说

I have developed an Android app (link to the actual app) and have uploaded it to the Play store. The Play store says

这个程序是您的XT移动网络的HTC HTC野火S A510b是不相容的。

当然,这是我开发的应用程序的手机,所以它的应该的是兼容的。有些人与其他设备说,它报告兼容的,有人说这报告不符,但我找不到任何的趋势。 (显然,我不知道很多人用Android设备。)

Of course that is the phone on which I developed the app, so it ought to be compatible. Some people with other devices say that it reports compatible, others say it reports incompatible, but I can find no trend. (Apparently I don't know very many people with Android devices.)

我已经试过如下:

  • 移动肥胖型文件移出 RES /生目录中所建议的这个答案。在那里唯一的文件是一个〜700 kb的文本文件,但我把它移到资产/ ,没有明显的变化。

  • moving a large-ish file out of the res/raw directory as suggested by this answer. The only file in there was a ~700 kB text file, but I moved it to assets/ with no apparent change.

添加以下两个特征断言:

adding the following two feature assertions:

<uses-feature android:name="android.hardware.faketouch" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />

想,也许我的手机不声称支持通常的 android.hardware.touchscreen 的功能,但同样,没有明显的变化。

thinking that maybe my phone doesn't claim to support the usual android.hardware.touchscreen feature, but again, with no apparent change.

在上传的APK到Play商店,它报告为活动的唯一滤波器是 android.hardware.faketouch 功能。

When uploading the APK to the Play store, the only filter that it reports as active is the android.hardware.faketouch feature.

以下是输出 AAPT转储徽章斌/ 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'

和完整性,我的清单文件:

and for completeness, my manifest file:

<?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设备,包括野火S,除了支持G1(鳟鱼)和触摸万岁(蛋白石),无论这些是。其实我看到,无论是野火S(奇迹)和野火S A515c(marvelc)被列为支持,但我的野火S A510b没有特别提及。可这样的子型号标识事那么多吗?我已经能够下载从谷歌一些其他应用发挥到我的手机,没有任何问题。

In the "Device Availability" section of the Play store, I can see that all the HTC devices, including the Wildfire S, are supported except for "G1 (trout)" and "Touch Viva (opal)", whatever those are. Actually I see that both "Wildfire S (marvel)" and "Wildfire S A515c (marvelc)" are listed as supported, but my "Wildfire S A510b" is not specifically mentioned. Can this sort of sub-model identifier matter that much? I have been able to download several other apps from Google Play to my phone with no problems.

我唯一的没有的做到这一点的就是等待4-6小时上传的最新版本(如在的此评论),看它是否仍然说,这是我的电话不兼容。然而,Play商店网页目前显示1.0.2这是我已经上传了最新的。

The only thing I haven't done at this point is wait 4-6 hours after uploading the latest version (as in this comment) to see whether it still says it's incompatible with my phone. However, the Play store page currently shows 1.0.2 which is the latest I have uploaded.

答案似乎是只与应用程序的大小。我创建了一个简单的Hello World应用程序,什么也没有特殊的清单文件,上传到Play商店,并且据报道,与我的设备兼容。

The answer appears to be solely related to application size. I created a simple "hello world" app with nothing special in the manifest file, uploaded it to the Play store, and it was reported as compatible with my device.

我在此应用程序,除了增加更多的内容到 RES /绘制目录中什么也没有改变。当 .apk文件尺寸达到约32 MB,Play商店开始报告称,我的应用程序是用我的手机不兼容。

I changed nothing in this app except for adding more content into the res/drawable directory. When the .apk size reached about 32 MB, the Play store started reporting that my app was incompatible with my phone.

我将尝试联系谷歌开发者的支持,并要求澄清这一限制的原因。

I will attempt to contact Google developer support and ask for clarification on the reason for this limit.

更新:这是谷歌开发者的支持响应这样的:

UPDATE: Here is Google developer support response to this:

感谢您的来信。目前,最大文件大小限制的应用程序上传到谷歌Play是大约50 MB。

Thank you for your note. Currently the maximum file size limit for an app upload to Google Play is approximately 50 MB.

但是,某些设备可能会小于50 MB高速缓存分区使得应用程序不可用,供用户下载。例如,一些HTC野火装置是已知的用于具有35-40 MB的高速缓存分区。如果谷歌Play是能够识别使得不具有高速缓存大到足以存储该应用设备,它可能出现在用户进行过滤。

However, some devices may have smaller than 50 MB cache partition making the app unavailable for users to download. For example, some of HTC Wildfire devices are known for having 35-40 MB cache partitions. If Google Play is able to identify such device that doesn't have cache large enough to store the app, it may filter it from appearing for the user.

我最终通过将所有的PNG文件为JPG,用小的损失品质的解决我的问题。该 .apk文件文件现在是28 MB,即低于任何阈值的谷歌Play是执行我的电话。

I ended up solving my problem by converting all the PNG files to JPG, with a small loss of quality. The .apk file is now 28 MB, which is below whatever threshold Google Play is enforcing for my phone.

我还删除了所有的&LT;使用特征&GT; 的东西,现在只能这样:

I also removed all the <uses-feature> stuff, and now have just this:

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />