安卓-谷歌应用商店过滤掉xxhdpi分辨率

9

我目前遇到一个与Google Play过滤和新的密度类xxhpdi有关的问题,这是在API Level 16中引入的。 我的应用程序分为3个APK文件(我知道这不是最佳实践,但由于规划不当,我目前必须这样做)。有趣的部分是针对Android 4.0,仅限智能手机的版本。 我已经在AndroidManifest.xml中设置了市场过滤器,如下所示:

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17"/>
<compatible-screens>
    <screen android:screenDensity="ldpi" android:screenSize="small"/>
    <screen android:screenDensity="mdpi" android:screenSize="small"/>
    <screen android:screenDensity="hdpi" android:screenSize="small"/>
    <screen android:screenDensity="xhdpi" android:screenSize="small"/>

    <screen android:screenDensity="ldpi" android:screenSize="normal"/>
    <screen android:screenDensity="mdpi" android:screenSize="normal"/>
    <screen android:screenDensity="hdpi" android:screenSize="normal"/>
    <screen android:screenDensity="xhdpi" android:screenSize="normal"/>
</compatible-screens>

问题现在是,像HTC Droid DNA这样具有1080p屏幕的新设备无法查看或安装我的应用程序,因为我没有指定它也支持xxhdpi屏幕。问题在于我将minSdkVersion设置为API Level 14,即Android ICS,所以我不能简单地添加以下行:
<screen android:screenDensity="xxhdpi" android:screenSize="normal"/>

这是因为API级别14不知道xxhdpi类。有没有解决我的问题的方法,而不必创建第四个单独的APK文件?
谢谢。

引用:注意:通常情况下,您不应使用此清单元素。使用此元素可能会大大减少您的应用程序的潜在用户群,因为如果用户具有您未列出的屏幕配置设备,则无法安装您的应用程序。您只应在万不得已时使用它,来自开发者 SDK - t0mm13b
据我所知,xxhdpi仅适用于JB及以上版本,简而言之,不幸的是你没有机会了。最简单的方法是重新构建目标为JB,即API 20或21,然后它应该可以实现。 - t0mm13b
谢谢你的回答。该应用程序已经针对JB MR1进行了定位,因为这是API级别17。 API级别14是Android 4.0。 - NiThDi
2个回答

24
我找到了解决方法:不要添加
<screen android:screenDensity="xxhdpi" android:screenSize="normal"/>

在兼容屏幕部分添加一行,看起来数字值也能正常工作:

<screen android:screenDensity="480" android:screenSize="normal"/>

是的,tvdpi和213(适用于Nexus 7)是相同的东西,与您所针对的API无关,这些常量根本不存在。您应该接受您的答案。 - brillenheini
我已经尝试将480的值代替xxhdpi,虽然应用程序可以正确编译,但当它进入商店时,它并未显示为与Galaxy S4兼容。尽管安卓已经更新到最新版本,但我仍无法编译 - 我得到了如上所述的错误。 - djbp

1

关于这个问题似乎存在一个未解决的问题:code.google.com/p/android 很遗憾,我想不到更好的解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接