应用程序与平板电脑不兼容

Application is incompatible with tablets

我在 Xamarin Studio 中创建了一个项目,当我在 Google Play 中发布时似乎出现了一些问题:

应用发布后,我可以在手机上正常安装,但是当我尝试在Google中访问该应用时,通过平板播放它说该应用与设备不兼容。

我是 android 开发的新手,所以我对此有一些疑问...我尝试在应用程序清单中包含兼容的屏幕:

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.package.name" android:versionName="1.0.0" android:versionCode="42">
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <permission android:protectionLevel="signature" android:name="my.package.name.permission.C2D_MESSAGE" />
    <uses-permission android:name="my.package.name.permission.C2D_MESSAGE" />
    <application android:label="MyApplication" android:icon="@drawable/Icon" android:theme="@android:style/Theme.NoTitleBar">
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/FacebookAppID" />
    <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/ApplicationName" />
    <service android:name="parse.ParsePushService" />
    <receiver android:name="parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="my.package.name" />
        </intent-filter>
    </receiver>
    </application>
    <compatible-screens>
        <!--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" />
        <!-- 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" />
        <!-- all xlarge size screens -->
        <screen android:screenSize="xlarge" android:screenDensity="ldpi" />
        <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
        <!-- Special case for Nexus 7 -->
        <screen android:screenSize="large" android:screenDensity="213" />
     </compatible-screens>
</manifest>

我收到一些电子邮件说平板电脑不兼容,所以我尝试了 1 台实体平板电脑和 2 台虚拟平板电脑,但它们确实不兼容。

我还需要点别的吗?或者问题出在 Google Play Developer Console?

我只是想 post 我所说的一切作为答案。我放置这些的顺序与重要性无关。

您不需要使用 <compatible-screens> 除非您的应用只应在某些屏幕上 运行。

在我的清单中,我添加了以下内容,但您可能不需要这样做:

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

我会查看 Google 开发控制台并确保您没有排除设备,并且可能会查看受支持的设备列表中是否有任何平板电脑。如果我搜索 'Tablet'.

我有 80

最后,确保您至少检查了以下架构:armeabi-v7ax86armeabi 已弃用,你可以做另外两个,但我们不这样做,因为我们在发布模式下使用 LLVM 编译,这与 64 位架构不兼容。这样做的好处是所有 64 位架构仍然可以使用 32 位构建,所以如果您检查这 3 个,它们仍然会被覆盖。