【问题标题】:Why is App not compatible with Tablets after update为什么更新后App与平板不兼容
【发布时间】:2013-03-31 18:41:26
【问题描述】:

我有一款应用已经推出 2 年多了,只要平板电脑问世,它就在平板电脑上得到支持。我有一个用于平板电脑测试的 Asus Transformer 平板电脑。在我进行更新之前,该应用程序与平板设备兼容。对于我最近的一组更改,我在 Android Manifest 文件中唯一更改的是应用版本号和应用版本字符串。其他一切都和以前完全一样。但是,更新后,当我在 Google Play 中搜索该应用时,该应用没有出现。当我在平板电脑的浏览器中查看该应用时,它显示“您的设备与此版本不兼容。”

在没有修改权限的情况下,这个新版本究竟如何与平板电脑不兼容?当我查看我的应用程序时,在 Android 开发者控制台内部,它说支持 2,673 台设备,并且说排除了 0 台设备(没错,零台设备)。好吧,如果这是真的,我怎么可能收到不兼容的消息?此外,当我查看支持的设备列表时,我的华硕平板电脑也会在其中列出。

请注意,应用程序大小仅为 1.19 MB,我实际上有 2 个可执行文件用于同一个应用程序,但另一个可执行文件专门用于 Android 1.5 及更低版本,其版本代码为 0300800,因此低于版本代码对于支持 Android 1.6 及更高版本的可执行文件(使用兼容性包)。

此外,当我使用 ADB 连接到我的计算机时,我可以将应用程序直接加载到平板电脑上。我什至意识到这个问题现在出现的唯一原因是因为我收到了几个平板电脑用户的电子邮件,他们说他们收到的消息与我相同,只是他们使用的平板电脑不同。

这是我的 Manifest 文件(同样,除了版本号之外它没有变化):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="my_package"
  android:versionCode="0400921"
  android:versionName="9.2.1"
  android:installLocation="auto">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<supports-screens android:anyDensity="true"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".App"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity android:name=".Activity1" android:label="Activity1"></activity>
<more activities>

</application>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />

【问题讨论】:

  • 只是猜测,但请删除 supports-screens 并重试。
  • 谢谢 J。我删除了 标记,并将 标记移到 标记上方(其他人的建议),但我仍然收到相同的消息发布应用更新后。这也是在我将应用程序直接加载到我的平板电脑上之后没有问题。
  • 同样的问题,没有支持屏幕和用户功能
  • 我有同样的问题,我的两个应用声称在 Google Play 上的 Nexus 10 上不受支持。根据开发者控制台,支持 Nexus 10:/
  • 尝试在新的开发者控制台中为平板电脑添加屏幕截图(7 和 10 英寸是一个非常新的选项)可能会有所帮助

标签: android google-play


【解决方案1】:

我联系了 Google,他们调查了这个问题。有一系列问题。首先,他们说切换到新的开发者控制台起了作用,因为旧的开发者控制台更加宽松。他们说我的旧清单文件在旧的 Devloper 控制台中工作,但从技术上讲,旧的清单文件实际上并没有为平板电脑指定信息。

因此,我将清单文件更新为此,现在使用平板电脑的用户可以在 Google Play 中访问该应用:

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10" />

<compatible-screens>
     <screen android:screenSize="large" android:screenDensity="480" />
     <screen android:screenSize="xlarge" android:screenDensity="480" />

    <screen android:screenSize="small" android:screenDensity="ldpi" /> 
    <screen android:screenSize="small" android:screenDensity="mdpi" /> 
    <screen android:screenSize="small" android:screenDensity="hdpi" /> 
    <screen android:screenSize="small" android:screenDensity="xhdpi"/>

    <!--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>

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".App"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    <activity android:name=".Activity1" android:label="Activity1"></activity>
        </application>

</manifest>

另外,他们说要使用supports-screens而不是compatible-screens,以扩大兼容性。

【讨论】:

  • 我遇到了确切的问题。您是否尝试过 support-screen 标签?
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 2017-10-08
  • 2014-11-06
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多