为什么我的应用不适用于特定设备

Why is my app not available for specific devices

为什么是我问题的重点。

我知道有一个过滤系统使用 AndroidManifest.xml 中指定的要求和功能,而且可以手动排除设备。

但是,有没有办法找出哪些特定要求或功能导致被排除?

Google Developer Console 中,设备仅显示为 "unsupported",但没有关于 为什么 不支持它们的任何进一步信息。我确信他们被拒绝是有充分理由的。但是如何找出原因呢?我真的更喜欢一种更通用的方法,而不是将每个要求和功能与清单文件进行比较。

这只是一个示例屏幕截图,并不表示我希望找出排除原因的设备。

非常感谢任何帮助! 提前致谢。

您的应用中可能有一些方法不符合这些设备的最低要求(硬件或软件,例如 RAM、处理器、API 级别或其他)。

在我的例子中,我使用了一些不支持某些设备的第三方库(基于 API 级别)。

(至少目前)没有通用方法 可以找出导致排除的确切原因。因此,必须尝试错误才能找到答案。

感谢 Neal Ahluvalia 指引我正确的方向。


但是,在我的例子中,问题是设备与 <compatible-screens> 中的 android:screenDensity 不匹配。这真的很奇怪,因为我有从 mdpi640 的所有内容,对于从 normalxlarge 的任何 android:screenSize

根据 this page 看起来从 mdpixxxhdpi (= 640) 在这些范围所涵盖的范围之间没有差距。 但是(至少)肯定存在一个差距,其中 tvdpi 出现(顺便说一句,电视屏幕被认为是.. 0_o)。

不知何故,这些设备属于该页面上未提及的奇怪 tvdpi,直到您一直向下滚动到可以找到它的 table。 这还不是故事的结尾.. 你必须添加这个 tvdpi 而不是它的名字,而是它的 dpi 值 => android:screenDensity="213",就像你也必须为 dpi 值做的一样大于 xhdpi

此时我脑子里有一个很大的"WTF"。感谢 Google 创建了人们能想象到的最糟糕的可理解系统。