为什么更新后App与平板不兼容 [英] Why is App not compatible with Tablets after update

查看:17
本文介绍了为什么更新后App与平板不兼容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have an app that's been available for over 2 years, and supported on tablets for as long as tablets have been around. I have an Asus Transformer tablet that I use for tablet testing. Before I made the update, the app was compatible with tablet devices. For my recent set of changes, then only thing I changed in the Android Manifest file was the app version number and app version string. Everything else is exactly the same as before. However, after the update, when I search for the app in Google Play the app doesn't appear. When I view the app in a browser on my tablet, it says "Your device isn't compatible with this version."

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

How exactly can this new version be incompatible with tablets when no permissions were modified? Inside of the Android Developer Console when I view my app, it says that 2,673 devices are supported and it says 0 devices are excluded (that's right, zero devices). Well if that's true, how can I possibly get an incompatibility message? Also, when I view the list of supported devices, my Asus tablet is listed there.

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

Note that the app size is only 1.19 MB, and that I actually have 2 executables for the same app, but the other executable is specifically for Android 1.5 and lower and its version code is 0300800 so it is lower than the version code for the executable that supports Android 1.6 and higher (using the compatibility package).

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

Also, I am able to load the app directly onto the tablet when connected to my computer using ADB. The only reason I even realized this problem was occurring now is because I received emails from a couple of tablet users who said they were getting the same message as me, except they had different tablets that I do.

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

Here is my Manifest file (again, it is unchanged aside from the version number):

<?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" />

推荐答案

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

I contacted Google, and they looked into the issue. There were a combination of issues. First, they said that the switch to the new Developer Console played a part because the old developer console was more lenient. They said that my old manifest file worked in the old Devloper Console, but technically the old manifest file didn't actually specify information for tablets.

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

So, I updated my manifest file to this, and now users with tablets are able to access the app in 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>

此外,他们说要使用支持屏幕而不是兼容屏幕以扩展兼容性.

In addition, they said to use supports-screens instead of compatible-screens in order to expand compatibility.

这篇关于为什么更新后App与平板不兼容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆