【发布时间】:2015-05-30 22:40:10
【问题描述】:
我有一个 Nexus 6(1440 x 2560 像素(~493 ppi 像素密度))和一个 LG G3(1440 x 2560 像素(~538 ppi 像素密度))和这个清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
android:installLocation="preferExternal"
android:versionCode="..."
android:versionName="...">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="22"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<uses-feature
android:name="android.hardware.touchscreen"
android:required="true"/>
<uses-feature
android:name="android.hardware.location"
android:required="true"/>
<uses-feature
android:name="android.hardware.camera"
android:required="true"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--GCM-->
<permission android:name="...permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="...permission.C2D_MESSAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<!-- =========== Screen Types =========== -->
<supports-screens android:requiresSmallestWidthDp="400"/>
<compatible-screens>
<!-- all small size screens -->
<screen
android:screenDensity="mdpi"
android:screenSize="small"/>
<screen
android:screenDensity="hdpi"
android:screenSize="small"/>
<screen
android:screenDensity="xhdpi"
android:screenSize="small"/>
<screen
android:screenDensity="480"
android:screenSize="small"/>
<screen
android:screenDensity="640"
android:screenSize="small"/>
<!-- all normal size screens -->
<screen
android:screenDensity="mdpi"
android:screenSize="normal"/>
<screen
android:screenDensity="hdpi"
android:screenSize="normal"/>
<screen
android:screenDensity="xhdpi"
android:screenSize="normal"/>
<screen
android:screenDensity="480"
android:screenSize="normal"/>
<screen
android:screenDensity="640"
android:screenSize="normal"/>
<!-- all large size screens -->
<screen
android:screenDensity="mdpi"
android:screenSize="large"/>
<screen
android:screenDensity="hdpi"
android:screenSize="large"/>
<screen
android:screenDensity="xhdpi"
android:screenSize="large"/>
<screen
android:screenDensity="480"
android:screenSize="large"/>
<screen
android:screenDensity="640"
android:screenSize="large"/>
</compatible-screens>
LG G3 可以下载该应用,但 Nexus 6 不能。我在这里错过了什么?
谢谢。
编辑:
Haresh Chhelana 的回答是正确的,尽管这更像是一种解决方案。我认为谷歌应该改变supports-screens,不仅仅是为了启用屏幕兼容模式(在我看来没什么用),而是为了排除一些设备。更合乎逻辑的是:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="false"
android:anyDensity="true"/>
而不是在compatible-screens 中指定所有可能的组合,这就是发生此类错误的原因(这在我们只需要平板电脑时有效,因此它应该也适用于手机,但它不...)。
【问题讨论】:
-
只是好奇,屏幕尺寸和密度的所有这些限制是什么?
-
我只想要手机,没有平板电脑和 480 = xxhdpi, 640 = xxxhdpi
标签: android google-play android-manifest