应用程序与平板电脑

时间:2016-03-22 13:11:59

标签: android xamarin publish tablet

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

当应用程序发布时,我可以正常安装在手机中,但当我尝试通过平板电脑访问Google Play中的应用程序时,它表示应用程序与设备不兼容。

我是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开发者控制台中?

1 个答案:

答案 0 :(得分:1)

我只想发布我所说的所有答案。我把它们放入的顺序与重要性无关。

除非您的应用只能在特定屏幕上运行,否则您不需要使用<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 Dev Console并确保您不排除设备,也可以查看是否有任何平板电脑位于支持的设备列表中。如果我搜索“平板电脑”,我就有80个。

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