为什么 Google Play 说我的应用与它应该运行的设备不兼容?

Why does Google Play say my app is incompatible with devices it should be working on?

我最近发布了一个我正在练习的应用程序 ( https://play.google.com/store/apps/details?id=ali.ColorMatch2) 我请我的朋友在他的 Nexus 5 运行ning android 6.0.1 上为我测试一下。在开发应用程序时,我还使用 Nexus 5 运行 apk。出于某种原因,他收到一条消息说 "This device is not compatible"

这是一个极其简单的应用程序,没有使用任何应该限制兼容性的功能。我唯一需要限制兼容性的是一小段代码,声明它只与手机兼容,但我直接从 https://developer.android.com/guide/practices/screens-distribution.html 复制了它。

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ali.ColorMatch2">
<compatible-screens>
   <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />

    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />            
    </compatible-screens>
    ...
    </manifest>

Google 在您上传另一个 apk 后,play 需要几个小时才能更新,所以我很难尝试一些东西看看它是否有效。我看过其他时候发布的类似问题,但这些解决方案没有奏效。我的 apk 甚至不到 2 MB,所以我知道这不是因为它太大,它只使用了两个功能 - android.hardware.FAKETOUCH 和 android.hardware.screen.PORTRAIT

这是我的 apk 上的 Google Play 开发者控制台 运行:http://imgur.com/a/st0Aj

谢谢

* 编辑 *

添加 xxhdpi 定义后:

<screen android:screenSize="small" android:screenDensity="xxhdpi" />
<screen android:screenSize="normal" android:screenDensity="xxhdpi" />

compatible-screens 部分,我现在收到一条 warning on the Play Store 说我的应用程序是为平板电脑设计的,我不想这样,我应该担心这个吗?

您的列表中没有支持的 xxhdpi 屏幕,所以我猜测这两款手机的屏幕配置不知何故不同。删除该部分或添加 xxhdpi 和更大屏幕的定义:

<compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxhdpi" />
    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />
    <screen android:screenSize="normal" android:screenDensity="xxhdpi" />
    <!-- all large size screens -->
    <screen android:screenSize="large" android:screenDensity="ldpi" />
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />
    <screen android:screenSize="large" android:screenDensity="xxhdpi" />
</compatible-screens>

有关详细信息,请参阅 here

我认为警告是预料之中的,因为您正在定义大屏幕和 dpi 的兼容性。