46

我在 Google Play 商店中遇到问题,该商店坚持认为我的应用程序受 0 台设备支持。我已经尝试了在 SO 和其他地方找到的所有解决方案。这与 apk 不活动无关,它被默认激活,我什至尝试停用并重新激活它。

我已经在我的 Galaxy Nexus 上对其进行了测试,它运行良好,没有理由让它与每台 Android 设备不兼容......

这是我的清单文件:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-feature
    android:name="android.hardware.accelerometer"
    android:required="true" />
<uses-feature
    android:name="android.hardware.screen.portrait"
    android:required="false" />

完整的项目源代码可以在这里找到:https ://github.com/Nurgak/Android-Bluetooth-Remote-Control ,因为它是开源的。

这是我在 Google Play 上看到的。 在此处输入图像描述

5个特点是

android.hardware.ACCELEROMETER
android.hardware.BLUETOOTH
android.hardware.CAMERA
android.hardware.camera.AUTOFOCUS
android.hardware.TOUCHSCREEN

和4个权限

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.CAMERA
android.permission.INTERNET

我也对他们的支持感到震惊,我只是笼统地说“嘿,你看过我们的常见问题解答吗?” 回复电子邮件。

4

14 回答 14

49

当我在应用程序的清单文件中的 uses-feature 标记中声明相机硬件时,我遇到了类似的问题,如下所示:

<uses-feature android:name="android.hardware.camera">

如果您不指定 android:required 属性,则默认为“true”。因此,Google Play 商店将假定除非存在相机硬件,否则该应用程序将无法运行。

一旦您将 android:required 设置为 false,如下所示,Play 商店将接受 APK 并显示可用于该应用程序的设备列表。

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

您还可以在特征描述符上查找拼写错误。有关支持的功能描述符,请参阅http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference

欲了解更多信息:http: //developer.android.com/guide/topics/manifest/uses-feature-element.html

于 2015-03-15T07:41:32.763 回答
35

我们最近搬到了 Android Studio(从 Eclipse),我试图上传我的第一个使用 Studio 构建的生产版本,当我上传我的 APK 时,我收到了可怕的“支持的 Android 设备 0”消息。解决方案最终是我们如何包含 apache commons 编解码器库。

检查您的 build.gradle 文件 - 如果您看到类似以下内容:

compile 'org.apache.directory.studio:org.apache.commons.codec:1.+'

将其更改为:

compile 'commons-codec:commons-codec:1.+'

我的理论是命名空间的“org.apache.directory.studio”部分搞砸了开发者控制台并且使用速记工作正常。

我是怎么发现这个的?好吧,我没有,他们做到了,我只是很幸运,通过谷歌搜索找到了他们的提交信息。

于 2015-09-23T21:22:23.387 回答
33

然后进入发布管理 ->设备目录,然后选择任何不支持的设备以显示其详细信息,您将看到此设备不支持的原因

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2018-02-05T17:21:33.693 回答
29

对我来说,问题是清单文件中的这一行:

<uses-feature android:name="android.hardware.camera2" />

我可能会花费相当多的时间来追踪它,但幸运的是,谷歌在开发者控制台中提供了通过聊天与他们联系的能力(由于某种原因,ATMW 不再存在该选项,也许它有上限?)。他们能够在几分钟内查明问题,我不得不将上面的行更改为

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

相当节省时间,所以感谢谷歌!

于 2016-08-04T09:41:08.563 回答
20

有时这是因为您引用了第三方库。如果你能找到它是哪一个,如果你能删除它,你就可以解决问题。

在可能的情况下,我不得不删除:

org.apache.commons.io:2.4

于 2015-09-16T11:35:51.980 回答
18
  • 尝试将 apk 名称从更改com.bluetoothcom.nurgak.bluetoothremote
  • 尝试将所有uses-feature"-tags 设置为false
  • 尝试删除所有权限(我知道如果没有它们,该应用程序将无法运行,但只是为了弄清楚为什么 Google Play 说该应用程序支持 0 个设备)

android.hardware.screen.portraitPS:无论如何,如果您将其设置为,则不需要false。在这种情况下它没有效果。

于 2012-12-24T10:48:07.280 回答
4

我有一个类似的问题。我的解决方案是在清单中正确地写下这一行:

<uses-feature android:name="android.hardware.sensor.barometer" android:required="true" />
于 2013-02-05T16:13:36.103 回答
2

尽管回答了这个问题,但进行了一些额外的修改,删除了任何 .jar 依赖项(特别是 common-io.*.jar 依赖项)。解决依赖性问题后,我能够解决该问题。

于 2016-01-21T08:57:07.023 回答
0

如果使用 gradle,请确保项目中的所有清单都与 min/max/target sdk 版本对齐。

于 2015-02-25T10:54:53.293 回答
0

我知道现在回答已经晚了,我面临同样的问题。将所有用户功能设置为false后,Play 商店仍显示支持的设备为零。

这是解决方案,希望对某人有所帮助

   <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />

<supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

希望它有所帮助。

于 2017-07-13T11:45:21.547 回答
0

Mine related to the Zxing barcode scanner features. I chatted with developer support who identified that i had an issue with the android.hardware.camera.autoFocus property. Support wasn't sure what I needed to do in order to fix the issue. Using answers above, I added android:required="false" in the manifest file.

From 0 devices to Supported Android devices 7,856

Change from:

<!--barcode scan-->
<uses-feature android:name="android.hardware.camera.autoFocus"/>
<uses-feature android:name="android.hardware.camera"/>

to

<!--barcode scan-->
<uses-feature android:name="android.hardware.camera.autoFocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
于 2021-02-19T20:36:03.923 回答
0

我也遇到了 0 个受支持设备的问题,但原因不同。其中一个库会lib/README.txt在生成的 APK 中创建一个文件。将 APK 上传到 Google Play 控制台后,该lib/README.txt文件将被 APK 分析工具拾取,并被视为不受任何设备支持的本机库。

我已通过使用文件中的以下 Gradle 配置从 APK 中删除文件来解决此问题build.gradle

android {
    ...

    packagingOptions {
        exclude 'lib/README.txt'
    }
}
于 2017-06-01T16:41:36.507 回答
0

我有这个问题。通过删除清单中的所有内容进行修复。

于 2017-06-15T23:09:50.670 回答
0

我发现这个问题是由AndroidManifest.xml文件引起的。只需更换

<uses-feature android:name="android.hardware.accelerometer" android:required="true"/>

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true"/>
于 2019-03-07T09:09:07.860 回答