简体   繁体   English

Google Play 说由于清单问题,我的应用与平板电脑的某些运营商型号不兼容。 什么?

[英]Google Play says my app is incompatible with some carrier models of a tablet due to manifest. What?

Why would my app not be compatible with only some carrier versions of a particular device, and how do I fix it?为什么我的应用程序仅与特定设备的某些运营商版本不兼容,我该如何解决? Check this out:看看这个:

武侠

So my app is only supported if they have the v1a3g model or the viennalte model.所以我的应用程序只有在他们有 v1a3g 模型或 viennalte 模型时才受支持。 But if they are using the verizon or att version for example, they can't download my app.但是,例如,如果他们使用 verizon 或 att 版本,则无法下载我的应用程序。

This is bothersome because I'm getting e-mails from users that have this Note Pro 12.2 tablet that want to download my app, but can't.这很麻烦,因为我收到来自拥有这款 Note Pro 12.2 平板电脑的用户的电子邮件,他们想要下载我的应用程序,但无法下载。

According to google, the reason is:根据谷歌,原因是:

This device model is not supported in your app's APK manifest and hence users of this device model cannot install your app.您应用的 APK 清单不支持此设备型号,因此此设备型号的用户无法安装您的应用。

Why wouldn't it be supported in my manifest?为什么我的清单不支持它? I checked, and my manifest doesn't exclude this device!我查了一下,我的清单没有排除这个设备! Here's my manifest:这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.app.censored">

<uses-sdk tools:overrideLibrary="com.robertsimoes.shareable" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.vending.BILLING" />

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

<application
    android:name=".myapplicationname"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppThemeDark">
    <meta-data
        android:name="com.samsung.android.icon_container.has_icon_container"
        android:value="true" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="censored" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name="com.zendesk.sdk.support.SupportActivity"
        android:theme="@style/SupportTheme" />
    <activity
        android:name=".SplashActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.BrandedLaunch">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

I've searched around stackoverflow for issues like this and people have suggested that some tablets cannot download an app if the apk size is too big (like larger than 20mb), but mine is only 7mb.我在 stackoverflow 上搜索过类似的问题,有人建议如果 apk 大小太大(比如大于 20mb),一些平板电脑无法下载应用程序,但我的只有 7mb。

When you use <uses-permission> elements, Google Play will automatically mark your app as being not supported on various devices.当您使用<uses-permission>元素时,Google Play 会自动将您的应用标记为在各种设备上不受支持。 The solution is to use the <uses-feature> tag with android: required="false" .解决方案是将<uses-feature>标签与android: required="false" However the app needs to actually not need those features otherwise it will not function properly.然而,该应用程序实际上不需要这些功能,否则它将无法正常运行。

If you want to know why a particular device is not supported, click the little arrow on the right of the device listed in Google Play as is visible from your screenshot.如果您想了解不支持特定设备的原因,请单击 Google Play 中列出的设备右侧的小箭头,如屏幕截图所示。 Then click the arrow next to 'Track-level status'.然后单击“跟踪级别状态”旁边的箭头。

原因设备不支持

Also keep in mind that devices that do not support the SDK version needed for your app will also be unsupported另请记住,不支持您的应用所需的 SDK 版本的设备也将不受支持

不支持sdk版本

Please refer to the link below for full documentation.请参阅以下链接以获取完整文档。

Here is what the official documentation says: To control filtering, always explicitly declare hardware features in <uses-feature> elements, rather than relying on Google Play to "discover" the requirements in <uses-permission> elements.这是官方文档所说的:要控制过滤,请始终在<uses-feature>元素中明确声明硬件功能,而不是依赖 Google Play 来“发现” <uses-permission>元素中的要求。 Then, if you want to disable filtering for a particular feature, you can add a android:required="false" attribute to the <uses-feature> declaration.然后,如果您想禁用特定功能的过滤,您可以在<uses-feature>声明中添加一个android:required="false"属性。 Source: https://developer.android.com/guide/topics/manifest/uses-permission-element.html来源: https : //developer.android.com/guide/topics/manifest/uses-permission-element.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM